Bagaimana cara mengkonversi struct System.Byte byte[]ke System.IO.Streamobjek di C # ?
Bagaimana cara mengkonversi struct System.Byte byte[]ke System.IO.Streamobjek di C # ?
Jawaban:
Cara termudah untuk mengkonversi array byte ke stream menggunakan MemoryStreamkelas:
Stream stream = new MemoryStream(byteArray);
stream.ToArray()jika Anda ingin kembali byte array Anda.
Anda sedang mencari MemoryStream.Writemetode .
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 MemoryStreamberdasarkan array byte:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
MemoryStream.Writelebih memakan memorinew MemoryStream(myByteArray)
MemoryStreambuffer 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 - MemoryStreammerujuk ke array dalam argumen. Ini bisa baik dan buruk, dan sedikit memalukan itu tidak didokumentasikan di MSDN :)
Lihatlah ke dalam MemoryStreamkelas.