我正在尝试了解 .Net MemoryStream 类的用法。由于流忙,我需要使用存储一些临时动态长度的二进制数据。所以我分配了一个内存流并临时将数据写入它。当我的流空闲时,我从内存流中读取所有数据并将数据写入其中。我通过将位置指针设置为 0 来做到这一点
即mDataBuffer.Position=0;
但是,似乎 memorystream 类在读取后不会丢弃数据。所以下次我得到与以前相同的数据。为了确认我写了这个示例程序
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,1),尽管我期望输出是(1,4)。
我对 memorystream 的这种行为感到非常困惑。任何人都可以阐明一些观点。此外,如果这是正常行为,那么我如何从流中删除过去的数据。
在此先感谢, vaibhav