.Net MemoryStream クラスの使用法を理解しようとしています。ストリームがビジーであるため、一時的な動的な長さのバイナリ データを格納する必要があります。そのため、メモリ ストリームを割り当て、そのデータを一時的に書き込みます。ストリームが解放されると、メモリストリームからすべてのデータを読み取り、データを書き込みます。これを行うには、位置ポインターを 0 に設定します。
つまり、mDataBuffer.Position=0;
ただし、メモリストリームクラスは、読み取り後にデータを破棄しないようです。次回は以前と同じデータを取得します。私がこのサンプルプログラムを書いたことを確認するために
MemoryStream ms = new MemoryStream();
ms.WriteByte((byte)1);
ms.Position = 0;
Console.WriteLine(ms.ReadByte());
ms.WriteByte((byte)4);
ms.Position = 0;
Console.WriteLine(ms.ReadByte());
驚いたことに、(1,4) の出力を期待していましたが、出力は (1,1) でした。
私はこのメモリストリームの動作に本当に困惑しています。誰でも光を当てることができますか?また、これが通常の動作である場合、ストリームから過去のデータを削除するにはどうすればよいですか。
前もってありがとう、vaibhav