Membaca dan menulis ke file
Membaca data dari file dan menulis data ke file adalah konsep inti di .NET.
Tailwind Traders perlu menulis total semua file penjualan penyimpanan individu ke file baru, lalu memuat file ke dalam sistem penjualan perusahaan.
Di sini, Anda mempelajari cara menggunakan File
kelas untuk membaca dan menulis ke file.
Baca data dari file
File dibaca melalui ReadAllText
metode pada kelas File
.
File.ReadAllText($"stores{Path.DirectorySeparatorChar}201{Path.DirectorySeparatorChar}sales.json");
Objek kembali dari ReadAllText
adalah string.
{
"total": 22385.32
}
Mengurai data dalam file
Data dalam format string ini tidak banyak membantu Anda. Data tersebut masih berupa karakter, tetapi sekarang dalam format yang dapat Anda baca. Anda menginginkan kemampuan untuk mengurai data ini ke dalam format yang dapat Anda gunakan secara terprogram.
Ada banyak cara untuk mengurai file JSON dengan .NET, termasuk pustaka komunitas yang dikenal sebagai Json.NET.
Anda dapat menambahkan paket Json.NET ke proyek Anda dengan menggunakan NuGet:
dotnet add package Newtonsoft.Json
Kemudian, tambahkan using Newtonsoft.Json
ke bagian atas file kelas Anda:
using Newtonsoft.Json;
Dan gunakan metode JsonConvert.DeserializeObject
:
var salesJson = File.ReadAllText($"stores{Path.DirectorySeparatorChar}201{Path.DirectorySeparatorChar}sales.json");
var salesData = JsonConvert.DeserializeObject<SalesTotal>(salesJson);
Console.WriteLine(salesData.Total);
class SalesTotal
{
public double Total { get; set; }
}
Tip
File datang dalam berbagai format. File JSON adalah yang paling diinginkan untuk digunakan karena dukungan bawaan dalam bahasa pemrogram tersebut. Anda juga mungkin menemukan file yang .csv, lebar tetap, atau beberapa format lainnya. Dalam hal ini, yang terbaik adalah mencari nuget.org untuk parser untuk jenis file tersebut.
Tulis data ke file
Anda mempelajari cara menulis file di latihan sebelumnya; Hanya saja kau menulis yang kosong. Untuk menulis data ke file, gunakan metode WriteAllText
yang sama, tetapi teruskan data yang ingin Anda tulis.
var data = JsonConvert.DeserializeObject<SalesTotal>(salesJson);
File.WriteAllText($"salesTotalDir{Path.DirectorySeparatorChar}totals.txt", data.Total.ToString());
// totals.txt
// 22385.32
Tambahkan data ke file
Dalam contoh sebelumnya, file ditimpa setiap kali Anda menulisnya. Kadang-kadang, Anda tidak ingin itu. Anda ingin menambahkan data ke file alih-alih menggantinya sepenuhnya. Anda dapat menambahkan data dengan metode File.AppendAllText
. Secara default, File.AppendAllText
membuat file jika belum ada.
var data = JsonConvert.DeserializeObject<SalesTotal>(salesJson);
File.AppendAllText($"salesTotalDir{Path.DirectorySeparatorChar}totals.txt", $"{data.Total}{Environment.NewLine}");
// totals.txt
// 22385.32
// 22385.32
Tip
Dalam contoh kode sebelumnya, Environment.NewLine
meminta .NET untuk menempatkan nilai pada barisnya sendiri. Jika Anda tidak melewati nilai ini, Anda akan mendapatkan semua angka yang disatukan pada baris yang sama.
Pada latihan berikutnya, Anda akan menyelesaikan proyek total penjualan untuk Tailwind Traders dengan membaca semua file penjualan dan menulis total keseluruhan ke file .txt. Sistem perdagangan perusahaan kemudian dapat memproses file tersebut.