Не удается получить доступ к закрытому потоку memoryStream, как его снова открыть?
У меня есть экземпляр memoryStream и он закрыт.
Я уже пробовал:
memoryStream.Flush();
memoryStream.Position=0;
чтобы повторно открыть поток памяти, но он не работает. Как я могу открыть закрытый поток памяти?
заблаговременно.
Ответ 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());