Saya bertanya-tanya mengapa begitu banyak contoh membaca array byte ke dalam aliran di chuck dan tidak semuanya sekaligus... Saya tahu ini adalah pertanyaan yang lembut, tapi saya tertarik.
Saya mengerti sedikit tentang perangkat keras dan pengisian buffer bisa sangat bergantung pada ukuran dan Anda tidak ingin menulis ke buffer lagi sampai buffer tersebut dipindahkan ke mana pun ia harus pergi, dll... tetapi dengan platform .Net (dan lainnya bahasa modern) Saya melihat contoh keduanya. Jadi kapan menggunakan yang mana dan kapan, atau yang kedua mutlak tidak, tidak?
Inilah hal (kode) yang saya maksud:
var buffer = new byte[4096];
while (true)
{
var read = this.InputStream.Read(buffer, 0, buffer.Length);
if (read == 0)
break;
OutputStream.Write(buffer, 0, read);
}
daripada:
var buffer = new byte[InputStream.Length];
var read = this.InputStream.Read(buffer, 0, buffer.Length);
OutputStream.Write(buffer, 0, read);
Saya yakin keduanya legal? Jadi mengapa harus melalui semua keributan dari loop while (apa pun yang Anda putuskan untuk menyusunnya)?
Saya bermain sebagai pendukung setan di sini karena saya ingin belajar sebanyak yang saya bisa :)