Untuk memperluas sedikit jawaban lain di sini, dan membantu menjelaskan banyak contoh kode yang akan Anda lihat bertitik, sebagian besar waktu Anda tidak membaca dan menulis ke aliran secara langsung. Stream adalah sarana tingkat rendah untuk mentransfer data.
Anda akan melihat bahwa semua fungsi untuk membaca dan menulis berorientasi byte, misalnya WriteByte (). Tidak ada fungsi untuk menangani bilangan bulat, string, dll. Hal ini membuat streaming sangat bertujuan umum, tetapi kurang mudah untuk digunakan jika, katakanlah, Anda hanya ingin mentransfer teks.
Namun, .NET menyediakan kelas yang mengonversi antara tipe asli dan antarmuka aliran tingkat rendah, dan mentransfer data ke atau dari aliran untuk Anda. Beberapa kelas terkenal seperti itu adalah:
StreamWriter // Badly named. Should be TextWriter.
StreamReader // Badly named. Should be TextReader.
BinaryWriter
BinaryReader
Untuk menggunakannya, pertama-tama Anda memperoleh aliran Anda, kemudian Anda membuat salah satu kelas di atas dan mengaitkannya dengan aliran. Misalnya
MemoryStream memoryStream = new MemoryStream();
StreamWriter myStreamWriter = new StreamWriter(memoryStream);
StreamReader dan StreamWriter mengonversi antara jenis asli dan representasi stringnya, lalu mentransfer string ke dan dari aliran sebagai byte. Begitu
myStreamWriter.Write(123);
akan menulis "123" (tiga karakter '1', '2' lalu '3') ke aliran. Jika Anda berurusan dengan file teks (misalnya html), StreamReader dan StreamWriter adalah kelas yang akan Anda gunakan.
Sedangkan
myBinaryWriter.Write(123);
akan menulis empat byte yang mewakili nilai integer 32-bit 123 (0x7B, 0x00, 0x00, 0x00). Jika Anda berurusan dengan file biner atau protokol jaringan, BinaryReader dan BinaryWriter adalah yang mungkin Anda gunakan. (Jika Anda bertukar data dengan jaringan atau sistem lain, Anda harus memperhatikan ketekunan , tetapi itu adalah pos lain.)