12 Stimmen

Wie man System.IO.Stream von einem String-Objekt erhält

Ich habe ein String-Objekt. Ich muss diese Daten an ein anderes Objekt vom Typ XYZ übergeben. Aber dieses Objekt vom Typ XYZ nimmt nur System.IO.Stream. Wie kann ich also die String-Daten in einen Stream konvertieren, so dass das Objekt vom Typ XYZ diese String-Daten verwenden kann?

26voto

Adam Robinson Punkte 176996

Sie müssen eine Textkodierung auswählen, um die Zeichenkette in ein Byte-Array zu übersetzen, und dann eine MemoryStream um Ihre Funktion aufzurufen. Zum Beispiel:

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

Sie können ändern UTF16 die Kodierung sein, die Sie für die Übergabe der Zeichenfolge verwenden möchten.

1voto

Thakur Punkte 1850

Angenommen, Sie wollen den Stream der Zeichenkette in UTF8 kodiert haben:

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

Je nachdem, was Sie wirklich tun wollen, sind Sie mit der Klasse StringReader vielleicht besser bedient. Sie ist zwar kein IO.Stream, ermöglicht aber ein einfaches textorientiertes Lesen von Strings.

1voto

northernwind Punkte 569

Dieser Code lädt formatierten Text (rtf) in die 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);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X