Bagaimana cara mengkonversi struct System.Byte
byte[]
ke System.IO.Stream
objek di C # ?
759
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:Atau, Anda bisa membuat objek baru yang tidak bisa diubah ukurannya
MemoryStream
berdasarkan array byte:sumber
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 menggunakanbyte[]
konstruktor, array tidak disalin -MemoryStream
merujuk ke array dalam argumen. Ini bisa baik dan buruk, dan sedikit memalukan itu tidak didokumentasikan di MSDN :)Pendekatan umum untuk menulis ke aliran apa pun (tidak hanya
MemoryStream
) adalah dengan menggunakanBinaryWriter
:sumber
Lihatlah ke dalam
MemoryStream
kelas.sumber