回答:
バイト配列をストリームに変換する最も簡単な方法は、MemoryStream
クラスを使用することです。
Stream stream = new MemoryStream(byteArray);
stream.ToArray()
、バイト配列を元に戻す場合は、引き続き使用できます。
あなたはMemoryStream.Write
メソッドを探しています。
たとえば、次のコードはbyte[]
配列の内容をメモリストリームに書き込みます。
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);
または、バイト配列に基づいて、サイズを変更できない新しいMemoryStream
オブジェクトを作成することもできます。
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
MemoryStream.Write
はメモリ消費量がはるかに多いことに注意してくださいnew MemoryStream(myByteArray)
MemoryStream
デフォルトでは、バッファに割り当てられた追加のスペースがあります(たとえば、リストの場合と同じです)。これは、容量を設定できるオーバーロードを使用して簡単に処理できますが、ストリームにデータを書き込むことを期待していない場合(または必要になる可能性がある追加のバイト数がわかっている場合)にのみ非常に役立ちます。 )。しかし、jitbitは、byte[]
コンストラクターを使用するときに配列がコピーされないという事実を参照しているのではないかと思いMemoryStream
ます。これは、引数の配列を参照しています。これは良いことも悪いこともあり、MSDNに記載されていないのは少し残念です:)
MemoryStream
クラスを調べてください。