Я хочу написать String для потока (в этом случае MemoryStream) и читать байты один за другим.
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());
Результат (нежелательный), который я получаю:
This: M
Differs from: ?
Похоже, что он не читается правильно, поскольку первый char из "Message" - это "M", который работает при получении байтов из экземпляра UnicodeEncoding, но не при чтении их из потока.
Что я делаю неправильно?
Большее изображение: у меня есть алгоритм, который будет работать над байтами Stream, я хотел бы быть как можно более общим и работать с любым Stream. Я хотел бы преобразовать ASCII-String в MemoryStream или использовать другой метод, чтобы работать с String как Stream. Этот алгоритм будет работать с байтами потока.