Quiero escribir un String en un Stream (un MemoryStream en este caso) y leer los bytes uno por uno.Escribir String to Stream y leerlo de nuevo no funciona
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());
El (no deseado) resultado que obtengo es:
This: M
Differs from: ?
Se ve como que no está siendo leído correctamente, ya que el primer carácter de "mensaje" es 'M', que funciona cuando obtener los bytes de la instancia de UnicodeEncoding pero no al leerlos de la transmisión.
¿Qué estoy haciendo mal?
El cuadro más grande: Tengo un algoritmo que trabajará en los bytes de una corriente, me gustaría ser lo más general posible y trabajar con cualquier corriente. Me gustaría convertir un ASCII-String en un MemoryStream, o tal vez usar otro método para poder trabajar en el String como un Stream. El algoritmo en cuestión funcionará en los bytes de Stream.
¿Desea leer los bytes o los caracteres uno por uno de la secuencia? Tenga en cuenta que byte! = Char ya que su codificación es Unicode. –
Sí, lo hago. Y byte será char ya que leeré documentos ASCII. ¿Sería mejor utilizar algo que no sea uniEncoding en mi caso? – Deleted
Agregué una imagen más grande según lo solicitado. – Deleted