Подтвердить что ты не робот

Не удается получить доступ к закрытому потоку memoryStream, как его снова открыть?

У меня есть экземпляр memoryStream и он закрыт.

Я уже пробовал:

memoryStream.Flush();
memoryStream.Position=0;

чтобы повторно открыть поток памяти, но он не работает. Как я могу открыть закрытый поток памяти?

заблаговременно.

4b9b3361

Ответ 1

Как я могу открыть закрытый поток памяти?

Вы не можете повторно открыть поток. Если вам нужно "reset" поток, просто назначьте ему новый экземпляр:

memoryStream = new MemoryStream();

Ответ 2

Вы можете клонировать оригинал, а затем использовать клон, даже когда оригинал был закрыт. Несмотря на то, что исходный файл создан с емкостью 1000, ToArray() возвращает массив из 2 элементов. ToBuffer(), с другой стороны, получает весь буфер, который вам не нужен.

MemoryStream original = new MemoryStream(1000);
original.WriteByte(4);
original.WriteByte(5);

MemoryStream dolly = new MemoryStream(original.ToArray());
dolly.Seek(0, SeekOrigin.Begin);

Ответ 3

попробуйте следующее:

memoryStream = new MemoryStream(memoryStream.ToArray());