Как получить System.IO.Stream из объекта String - PullRequest
12 голосов
/ 28 сентября 2010

У меня есть строковый объект. Мне нужно передать эти данные другому объекту типа XYZ. Но этот объект типа XYZ принимает только System.IO.Stream. Так как преобразовать строковые данные в поток, чтобы объект типа XYZ мог использовать эти строковые данные?

Ответы [ 3 ]

26 голосов
/ 28 сентября 2010

Вам нужно будет выбрать кодировку текста, чтобы использовать ее для перевода строки в байтовый массив, а затем использовать MemoryStream для вызова вашей функции.Например:

using(System.IO.MemoryStream ms = new System.IO.MemoryStream(
     System.Text.Encoding.UTF16.GetBytes(yourString)))
{
    XYZ(ms);
}

Вы можете изменить UTF16 на любую кодировку, которую хотите использовать для передачи строки.

1 голос
/ 28 сентября 2010

Этот код загружает форматированный текст (rtf) в RichTextBox

TextRange tr = new  TextRange(RichTextBox1.Document.ContentStart,RichTextBox1.Document.ContentEnd);

string s = myStringData; //myStringData is a string in some format - rtf, xml, etc..
MemoryStream ms = new MemoryStream(s);
tr.Load(ms, DataFormats.Rtf);
1 голос
/ 28 сентября 2010

Если вы хотите, чтобы поток строки был закодирован в UTF8:

System.IO.MemoryStream mStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes( "the string"));

В зависимости от того, что вы действительно хотите сделать, вам может быть лучше использовать класс StringReader.Это не IO.Stream, но он облегчает текстовое чтение строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...