2010-09-28 11 views
12

Mam obiekt string. Muszę przekazać te dane do innego obiektu typu XYZ. Ale ten obiekt typu XYZ bierze tylko System.IO.Stream. Jak przekonwertować dane ciągów na strumień, aby obiekt typu XYZ mógł korzystać z danych tego łańcucha?Jak uzyskać System.IO.Stream z obiektu String

Odpowiedz

26

Będziesz musiał wybrać kodowanie tekstu, którego użyjesz do przetłumaczenia ciągu znaków na tablicę bajtów, a następnie użyć funkcji MemoryStream do wywołania swojej funkcji. Na przykład:

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

Można zmieniać UTF16 być cokolwiek kodowanie chcesz użyć, aby przekazać ciąg.

+0

To działa, dzięki. – mohang

+0

dodaj brakujący prawy nawias w wierszu 2. Nie mogłem edytować, ponieważ zmiany muszą zmienić więcej niż 6 znaków ... – cudahead

+0

@cudahead: Dzięki, gotowe. –

1

Zakładając chcesz strumień w struny zakodowane w UTF-8:

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

W zależności od tego, co naprawdę chcesz robić, to może być lepiej służył pomocą klasy StringReader. Nie jest to IO.Stream, ale ułatwia czytanie tekstowe ciągów znaków.

1

Ten kod ładuje tekst sformatowany (RTF) do 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); 
Powiązane problemy