На самом низком уровне ввод-вывод в C# осуществляется байтами. И делается это потому, что многие устройства ориентированы на операции ввода-вывода отдельными байтами. Но человеку больше свойственно общаться символами. Напомним, что в C# типcharявляется 16-разрядным, а типbyte— 8-разрядным. Так, если в целях ввода-вывода используется набор символов в коде ASCII, то для преобразования типаcharв типbyteдостаточно отбросить старший байт значения типаchar.Но это не годится • для набора символов в уникоде (Unicode), где символы требуется представлять двумя, а то и больше байтами. Следовательно, байтовые потоки не совсем подходят для организации ввода-вывода отдельными символами. С целью разрешить это затруднение в среде .NET Framework определено несколько классов, выполняющих превращение байтового потока в символьный с автоматическим преобразованием типаbyteв типcharи обратно.
Встроенные потоки
Классы потоков
В среде .NET Framework определены классы как для байтовых, так и для символьных потоков. Но на самом деле классы символьных потоков служат лишь оболочками для превращения заключенного в них байтового потока в символьный, автоматически выполняя любые требующиеся преобразования типов данных. Следовательно, символьные потоки основываются на байтовых, хотя они и разделены логически.
Основные классы потоков определены в пространстве именSystem. 10.
using System.10;
Пространство именSystem. 10не указывается для консольного ввода-вывода потому, что для него определен классConsoleв пространстве именSystem.
Класс Stream '