Bagaimana cara mengkonversi struct System.Byte
byte[]
ke System.IO.Stream
objek di C # ?
Bagaimana cara mengkonversi struct System.Byte
byte[]
ke System.IO.Stream
objek di C # ?
Jawaban:
Cara termudah untuk mengkonversi array byte ke stream menggunakan MemoryStream
kelas:
Stream stream = new MemoryStream(byteArray);
stream.ToArray()
jika Anda ingin kembali byte array Anda.
Anda sedang mencari MemoryStream.Write
metode .
Misalnya, kode berikut akan menulis konten byte[]
array ke aliran memori:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);
Atau, Anda bisa membuat objek baru yang tidak bisa diubah ukurannya MemoryStream
berdasarkan array byte:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
MemoryStream.Write
lebih memakan memorinew MemoryStream(myByteArray)
MemoryStream
buffer secara default (seperti halnya misalnya daftar). Ini dapat diatasi dengan mudah dengan menggunakan kelebihan yang memungkinkan Anda untuk mengatur kapasitas, tetapi hanya sangat berguna jika Anda tidak berharap untuk menulis data apa pun ke aliran (atau jika Anda tahu berapa banyak byte ekstra yang mungkin Anda perlukan ). Tapi saya curiga bahwa jitbit mungkin merujuk pada fakta bahwa ketika Anda menggunakan byte[]
konstruktor, array tidak disalin - MemoryStream
merujuk ke array dalam argumen. Ini bisa baik dan buruk, dan sedikit memalukan itu tidak didokumentasikan di MSDN :)
Lihatlah ke dalam MemoryStream
kelas.