Я пытаюсь понять использование класса .Net MemoryStream. Мне нужно использовать временные двоичные данные временной динамической длины, когда поток занят. Поэтому я выделяю поток памяти и временно записываю на нее данные. Когда мой поток освобождается, я читаю все данные из memystream и записываю данные на него. Я делаю это, установив указатель положения на 0Извлечение данных из потока памяти
i.e mDataBuffer.Position = 0;
Однако кажется, что класс memystream не отбрасывает данные после его считывания. Поэтому в следующий раз я получу те же данные, что и раньше. Для того, чтобы подтвердить, я написал этот пример программу
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).
Я действительно озадачен этим поведением memystream. Может кто-нибудь пролить свет. Также, если это нормальное поведение, то как я могу удалить прошлые данные из потока.
Спасибо заранее, Vaibhav