Tutorial Streaming di C#: StreamReader & StreamWriter [Contoh]
Apa itu Aliran C#?
Dalam operasi file C#, biasanya stream digunakan untuk membaca dan menulis ke file. Aliran adalah lapisan tambahan yang dibuat antara aplikasi dan file. Aliran ini digunakan untuk memastikan kelancaran operasi baca dan tulis ke file.
Stream biasanya digunakan saat membaca data dari file besar. Dengan menggunakan stream, data dari file besar dipecah menjadi potongan-potongan kecil dan dikirim ke stream. Potongan data ini kemudian dapat dibaca dari aplikasi.
Alasan untuk memecahnya menjadi bagian-bagian kecil adalah karena dampak kinerja membaca file besar dalam satu kesempatan. Jika Anda membaca data dari, misalnya, file 100 MB sekaligus, aplikasi Anda bisa hang dan menjadi tidak stabil. Pendekatan terbaik adalah menggunakan aliran untuk memecah file menjadi beberapa bagian yang dapat dikelola.
Jadi ketika operasi penulisan dilakukan pada file, data yang akan ditulis ditulis terlebih dahulu ke aliran. Dari aliran tersebut, data kemudian ditulis ke file. Hal yang sama berlaku untuk operasi baca. Dalam operasi baca, data pertama kali ditransfer dari file ke aliran. Data tersebut kemudian dibaca dari aplikasi melalui aliran. Mari kita lihat contoh bagaimana kita bisa membaca dan menulis menggunakan stream.
Pembaca Aliran
Pembaca aliran digunakan untuk membaca data dari file menggunakan aliran. Data dari file pertama kali dibaca ke dalam aliran. Setelah itu aplikasi membaca data dari aliran.
Sebagai contoh, kita berasumsi bahwa kita memiliki file di drive D bernama Contoh.txt. File tersebut akan berupa file teks sederhana dan memiliki 2 baris seperti yang ditunjukkan di bawah ini
- Guru99 – .Net
- Guru99 -C#
Sebagai contoh, kita akan membuat aplikasi Konsol sederhana dan bekerja dengan aliran File
Mari kita lihat contoh bagaimana kita dapat menggunakan stream untuk membaca data dari sebuah file. Masukkan kode di bawah ini di file program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamReader sr = File.OpenText(path)) { String s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } Console.ReadKey(); } } }
Penjelasan Kode: -
- Pertama, kita mendeklarasikan objek pembaca aliran. Objek pembaca aliran digunakan dalam C# untuk mendefinisikan aliran dari file ke aplikasi. Data akan dikirim dari file ke aliran setiap kali data dibaca dari file. Berkas.OpenText digunakan untuk membuka file “Example.txt” dalam mode read-only. Penangan file tersebut kemudian dikirim ke objek pembaca aliran.
- Selanjutnya, kita mendefinisikan variabel sementara 's' yang akan digunakan untuk membaca semua data dari file.
- Kami kemudian menggunakan metode pembaca aliran ReadLine untuk membaca setiap baris dari buffer aliran. Ketika kami melakukan ini operasi, setiap baris akan ditransfer terlebih dahulu dari file ke buffer. Kemudian baris string akan ditransfer dari buffer ke variabel 's'. Kemudian kita menulis isi string 's' ke konsol.
Ketika kode di atas disetel, dan proyek dijalankan menggunakan Visual Studio, Anda akan mendapatkan output di bawah ini.
Keluaran:-
Dari outputnya, Anda dapat melihat bahwa Stream Reader membaca kedua baris dari file tersebut. Terakhir, baris string yang dibaca dari aliran dikirim ke Konsol.
Penulis Aliran
Penulis aliran digunakan untuk menulis data ke file menggunakan aliran. Data dari aplikasi pertama kali ditulis ke dalam aliran. Setelah itu aliran menulis data ke file. Mari kita lihat contoh bagaimana kita dapat menggunakan stream untuk menulis data dari sebuah file. Masukkan kode di bawah ini di file program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamWriter sr = File.AppendText(path)) { sr.WriteLine("Guru99 - ASP.Net"); sr.Close(); Console.WriteLine(File.ReadAllText(path)); } Console.ReadKey(); } } }
Penjelasan Kode: -
- Pertama, kita mendeklarasikan objek penulis aliran. Objek penulis aliran digunakan dalam C# untuk mendefinisikan aliran. Aliran tersebut kemudian digunakan untuk menulis data dari aplikasi ke file. Data akan dikirim dari aplikasi ke aliran kapan pun data perlu ditulis. Perintah File.AppendText digunakan untuk membuka file “Example.txt” dalam mode penambahan. Penangan file tersebut kemudian dikirim ke objek penulis aliran.
- Kami menggunakan metode penulisan aliran Writeline untuk menulis baris “Guru99 – ASP.Net” ke aliran. Dari aliran tersebut, baris tersebut kemudian akan ditulis ke file.
- Kami kemudian menutup penulis aliran setelah menulis ke file. Biasanya merupakan praktik yang baik untuk menutup penangan file ketika file tidak lagi diperlukan untuk tujuan penulisan.
- Terakhir, kami membaca kembali konten file dan menulisnya ke log konsol. Ini untuk memeriksa apakah baris tersebut ditulis ke file.
Bila kode di atas ditetapkan, dan proyek dijalankan menggunakan Visual Studio, Anda akan mendapatkan keluaran di bawah ini.
Keluaran:-
Dari output, Anda dapat melihat bahwa baris “Guru99 – ASP.Net” berhasil ditambahkan ke file. Semua 3 baris teks dapat dilihat di konsol.
Kesimpulan
- Aliran digunakan sebagai tingkat perantara antara aplikasi dan file.
- StreamReader digunakan setiap kali data diperlukan untuk dibaca dari file.
- Streamwriter digunakan setiap kali data perlu ditulis ke file.