Ich möchte einen String in einen Stream schreiben (in diesem Fall ein MemoryStream) und die Bytes nacheinander lesen.String zum Streamen schreiben und zurücklesen funktioniert nicht
stringAsStream = new MemoryStream();
UnicodeEncoding uniEncoding = new UnicodeEncoding();
String message = "Message";
stringAsStream.Write(uniEncoding.GetBytes(message), 0, message.Length);
Console.WriteLine("This:\t\t" + (char)uniEncoding.GetBytes(message)[0]);
Console.WriteLine("Differs from:\t" + (char)stringAsStream.ReadByte());
Das (unerwünschte) Ergebnis, das ich bekommen ist:
This: M
Differs from: ?
Es sieht wie es ist nicht richtig, als das erste Zeichen von „Message“ gelesen wird, ‚M‘, das funktioniert, wenn Abrufen der Bytes von der UnicodeEncoding-Instanz, aber nicht beim Zurücklesen aus dem Stream.
Was mache ich falsch?
Das größere Bild: Ich habe einen Algorithmus, der auf den Bytes eines Strom funktionieren, würde Ich mag so allgemein wie möglich sein und mit jedem Stream zu arbeiten. Ich möchte einen ASCII-String in einen MemoryStream konvertieren oder eine andere Methode verwenden, um mit dem String als Stream arbeiten zu können. Der fragliche Algorithmus wird an den Bytes des Streams arbeiten.
Möchten Sie die Bytes oder die Zeichen einzeln aus dem Stream lesen? Beachten Sie, dass Byte! = Char, da Ihre Codierung Unicode ist. –
Ja, das tue ich. Und Byte wird char sein, da ich ASCII-Dokumente lesen werde. Wäre es besser, in meinem Fall etwas anderes als uniEncoding zu verwenden? – Deleted
Ich habe ein größeres Bild hinzugefügt, wie gewünscht. – Deleted