Membaca dan menulis ke file

Selesai

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.