У меня есть строковый объект. Мне нужно передать эти данные другому объекту типа XYZ. Но этот объект типа XYZ принимает только System.IO.Stream. Итак, как преобразовать строковые данные в поток, чтобы объект типа XYZ мог использовать эти строковые данные?
Как получить System.IO.Stream из объекта String
Ответ 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);