c# aliran input ke array byte: Panduan praktikal
Menukar aliran input ke dalam array byte adalah tugas yang sama apabila mengendalikan data binari dalam C#. Kaedah terbaik bergantung kepada sama ada anda mengetahui saiz aliran.
Saiz aliran yang diketahui:
Jika panjang aliran tersedia, menawarkan penyelesaian yang mudah: BinaryReader.ReadBytes
<code class="language-csharp">using (BinaryReader br = new BinaryReader(s)) { byte[] b = br.ReadBytes((int)s.Length); }</code>
Saiz Stream yang Tidak Diketahui:
Untuk aliran dengan panjang yang tidak diketahui, pendekatan yang lebih mantap, berulang diperlukan:
<code class="language-csharp">using (MemoryStream ms = new MemoryStream()) { byte[] buffer = new byte[16 * 1024]; // Adjust buffer size as needed int read; while ((read = input.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, read); } byte[] b = ms.ToArray(); }</code>
sebelum menukarnya ke array byte. MemoryStream
.net 4 dan ke atas: stream.copyto
.net 4 dan versi kemudian menawarkan penyelesaian yang lebih cekap dan ringkas menggunakan: Stream.CopyTo
<code class="language-csharp">using (MemoryStream ms = new MemoryStream()) { input.CopyTo(ms); byte[] b = ms.ToArray(); }</code>
Prestasi dan Pengurusan Sumber:
Atas ialah kandungan terperinci Bagaimana dengan cekap menukar aliran input ke array byte di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!