Книга: C# 4.0: полное руководство
Организация системы ввода-вывода в C# на потоках
Разделы на этой странице:
Организация системы ввода-вывода в C# на потоках
Ввод-вывод в программах на C# осуществляется посредством потоков. Поток — это некая абстракция производства или потребления информации. С физическим устройством поток связывает система ввода-вывода. Все потоки действуют одинаково — даже если они связаны с разными физическими устройствами. Поэтому классы и методы ввода-вывода могут применяться к самым разным типам устройств. Например, методами вывода на консоль можно пользоваться и для вывода в файл на диске.
Байтовые и символьные потоки
На самом низком уровне ввод-вывод в C# осуществляется байтами. И делается это потому, что многие устройства ориентированы на операции ввода-вывода отдельными байтами. Но человеку больше свойственно общаться символами. Напомним, что в C# тип char
является 16-разрядным, а тип byte
— 8-разрядным. Так, если в целях ввода-вывода используется набор символов в коде ASCII, то для преобразования типа char
в тип byte
достаточно отбросить старший байт значения типа char
. Но это не годится для набора символов в уникоде (Unicode
), где символы требуется представлять двумя, а то и больше байтами. Следовательно, байтовые потоки не совсем подходят для организации ввода-вывода отдельными символами. С целью разрешить это затруднение в среде .NET Framework определено несколько классов, выполняющих превращение байтового потока в символьный с автоматическим преобразованием типа byte
в тип char
и обратно.
Встроенные потоки
Для всех программ, в которых используется пространство имен System
, доступны встроенные потоки, открывающиеся с помощью свойств Console.In
, Console.Out
и Console.Error
. В частности, свойство Console.Out
связано со стандартным потоком вывода. По умолчанию это поток вывода на консоль. Так, если вызывается метод Console.WriteLine()
, информация автоматически передается свойству Console.Out
. Свойство Console.In
связано со стандартным потоком ввода, который по умолчанию осуществляется с клавиатуры. А свойство Console.Error
связано со стандартным потоком сообщений об ошибках, которые по умолчанию также выводятся на консоль. Но эти потоки могут быть переадресованы на любое другое совместимое устройство ввода-вывода. Стандартные потоки являются символьными. Поэтому в эти потоки выводятся и вводятся из них символы.
- Организация системы ввода-вывода в C# на потоках
- Классы потоков
- Консольный ввод-вывод
- Класс FileStream и байтовый ввод-вывод в файл
- Символьный ввод-вывод в файл
- Переадресация стандартных потоков
- Демонстрирование двоичного ввода-вывода
- Файлы с произвольным доступом
- Применение класса MemoryStream
- Применение классов StringReader и StringWriter
- Класс File
- Преобразование числовых строк в их внутреннее представление
- ГЛАВА 14 Применение средств ввода-вывода
- Особенности системы защиты данных в InterBase
- Организация пользователей в группы с помощью ролей
- Включение и отключение синхронного вывода
- Установка системы на уже подготовленный жесткий диск
- 1.3. Системы счисления
- Организация пресс-тура
- 7.4. Модель системы автоматизированного проектирования защиты информации
- 1. Системы управления базами данных
- 2. Правила вывода Армстронга
- 3. Производные правила вывода
- 4. Полнота системы правил Армстронга