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

Как получить System.IO.Stream из объекта String

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

Этот код загружает форматированный текст (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);