Помимо классов байтовых и символьных потоков, имеются еще два класса двоичных потоков, которые могут служить для непосредственного ввода и вывода двоичных данных —BinaryReaderиBinaryWriter.Подробнее о них речь пойдет далее в этой главе, когда дойдет черед до файлового ввода-вывода.
А теперь, когда представлена общая структура системы ввода-вывода в С#, отведем оставшуюся часть этой главы более подробному рассмотрению различных частей данной системы, начиная с консольного ввода-вывода.
Консольный ввод-вывод
Консольньгй ввод-вывод осуществляется с помощью стандартных потоков, представленных свойствамиConsole. In, Console. OutиConsole. Error.Примеры консольного ввода-вывода были представлены еще в главе 2, поэтому он должен быть вам уже знаком. Как будет показано ниже, он обладает и рядом других дополнительных возможностей.
Но прежде следует еще раз подчеркнуть, что большинство реальных приложений C# ориентированы не на консольный ввод-вывод в текстовом виде, а на графический оконный интерфейс для взаимодействия с пользователем, или же они представляют собой программный код, используемый на стороне сервера. Поэтому часть системы ввода-вывода, связанная с консолью, не находит широкого практического применения. И хотя программы, ориентированные на текстовый ввод-вывод, отлично подходят в качестве учебных примеров, коротких сервйсньгх программ или определенного рода программных компонентов, для большинства реальных приложений они не годятся.
Чтение данных из потока ввода с консоли
ПотокConsole. Inявляется экземпляром объекта классаTextReader,и поэтому для доступа к нему могут быть использованы методы и свойства, определенные в классеTextReader.Но для этой цели чаще все же используются методы, предоставляемые классомConsole,в котором автоматически организуется чтение данных из потокаConsole. In.В классеConsoleопределены три метода ввода. Два первых метода,Read () иReadLine, были доступны еще в версии .NET Framework 1.0. А третий метод,ReadKey, был добавлен в версию 2.0 этой среды.
Для чтения одного символа служит приведенный ниже методRead .
static int Read