Если мне дают то, MemoryStream
что, как я знаю, было заполнено String
, как я могу получить String
ответ?
.net
vb.net
string
memorystream
Брайан
источник
источник
Ответы:
В этом примере показано, как читать и записывать строку в MemoryStream.
источник
Вы также можете использовать
Я не думаю, что это менее эффективно, но я не мог поклясться в этом. Это также позволяет вам выбрать другую кодировку, тогда как при использовании StreamReader вам нужно будет указать это в качестве параметра.
источник
OutOfMemoryException
s. ИспользованиеStreamReader
вместо этого решило проблему.00
в начале строки.00 3C 3F
->.<?
в Hex Editor , но в VS или Notepad ++:<?
. Таким образом, вы не сможете увидеть разницу, даже если вы сравните строки на глаз, только инструмент сравнения или шестнадцатеричный редактор покажет разницу. Если вы все еще используете его, подумайте о String.TrimStart. См .: docs.microsoft.com/en-us/dotnet/api/…Использование StreamReader для преобразования MemoryStream в строку.
источник
используйте StreamReader , затем вы можете использовать метод ReadToEnd, который возвращает строку.
источник
Basestream
должен был установить свою позицию на 0. НравитсяmemoryStream.Position = 0;
.источник
Предыдущие решения не работали в случаях, когда используется кодирование. Вот - вид "реальной жизни" - пример, как это сделать правильно ...
источник
В этом случае, если вы действительно хотите использовать
ReadToEnd
методMemoryStream
простым способом, вы можете использовать этот метод расширения для достижения этой цели:И вы можете использовать этот метод следующим образом:
источник
В этом примере показано, как прочитать строку из MemoryStream, в которой я использовал сериализацию (используя DataContractJsonSerializer), передать строку с какого-либо сервера клиенту, а затем как восстановить MemoryStream из строки, переданной в качестве параметра, затем , десериализовать MemoryStream.
Я использовал части различных постов для выполнения этого образца.
Надеюсь, что это поможет.
источник
Слегка измененная версия ответа Брайана позволяет опционально управлять началом чтения. Это кажется самым простым методом. Вероятно, не самый эффективный, но простой для понимания и использования.
источник
Почему бы не создать хороший метод расширения для типа MemoryStream?
Конечно, будьте осторожны при использовании этих методов в сочетании со стандартными. :) ... вам понадобится использовать этот удобный streamLock для параллелизма.
источник
Мне нужно интегрироваться с классом, которому нужен поток для записи на него:
Я создаю простой класс, который может помочь уменьшить количество строк кода для многократного использования:
тогда вы можете заменить образец одной строкой кода
источник