- •1 Файлы и потоки
- •2 Потоки данных и классы
- •2.1 Стандартные потоки
- •2.2 Базовые классы для работы с файлами и потоками
- •2.2.1 Основные классы ввода и вывода
- •2.2.2 Классы на базе FileSystemInfo
- •2.2.3 Классы для работы с потоками
- •2.2.4 Классы для работы с потоками текстовых символов
- •2.3 Перечисления
- •3 Работа со стандартными потоками
- •3.1 Стандартный поток ввода
- •3.2 Стандартный поток вывода
- •3.2.1 Стандартный поток вывода сообщений об ошибках
- •3.3 Программа StdStreams
- •4 Создание потоков, связанных с файлами
- •4.1 Открытие потока FileStream
- •4.2 Открытие потоков BinaryWriter и BinaryReader
- •4.3 Закрытие потоков
- •4.4 Запись двоичных данных
- •4.5 Чтение двоичных данных
- •4.6 Программа Binary
- •4.7 Работа с текстовыми файлами
- •5 Выбор кодировки символов
- •5.1 Кодовые страницы
- •5.2 Недостатки модели кодовых страниц
- •5.3 Стандарт UNICODE
- •5.3.1 Unicode в Microsoft Windows NT/2000/XP
- •5.3.2 UNICODE в Microsoft Windows 95
- •5.4 Кодировка текстовых потоков
- •5.5 Кодировка текстовых строк в двоичных потоках
- •6 Буферизация потоков
- •6.1 Буферизация двоичных потоков
- •6.2 Буферизация текстовых потоков
- •6.3 Принудительный сброс буферов
- •7 Потоки в оперативной памяти
- •7.1 Создание потока
- •7.2 Чтение данных
- •7.3 Запись данных
- •7.4 Доступ к буферу потока MemoryStream
- •7.5 Потоки на базе строк string
- •7.6 Потоки класса StringBuilder
- •8 Краткие выводы
- •8.1 Создание и чтение бинарного файла
- •8.2 Создание текстового файла
- •8.3 Добавление в текстовый файл
- •8.4 Чтение и запись в файл строк на русском языке
- •8.5 Посимвольное чтение текстового файла
- •8.6 Построчное чтение текстового файла
- •8.7 Чтение файла полностью
(консоль), на которое выводятся и строки, записываемые в стандартный поток вывода.
3.3 Программа StdStreams
Приложение StdStreams демонстрирует способы работы со стандартными потоками ввода, вывода и вывода сообщений об ошибках (листинг 1).
Листинг 1.
using System; using System.IO;
namespace StdStreams
{
class StdStreamsApp
{
static void Main(string[] args)
{
TextWriter twOut = Console.Out; TextWriter twErr = Console.Error;
twOut.WriteLine("Запись в стандартный поток вывода"); twErr.WriteLine( "Запись в стандартный поток сообщений об ошибках");
TextReader trln = Console.In;
twOut.Write("Введите любую строку: "); string s = trln.ReadLine();
twOut.WriteLine("Вы ввели строку {0}", s);trln.ReadLine{);
}
)
}
Получив управление, метод Main нашей программы получает ссылки на стандартный поток вывода и стандартный поток вывода сообщений об ошибках:
TextWriter twOut = Console.Out;
TextWriter twErr = Console.Error;
Далее программа выводит в эти потоки две текстовые строки:
twOut.WriteLine("Запись в стандартный поток вывода"); twErr.WriteLine("Запись в стандартный поток сообщений об ошибках");
После этого наша программа получает ссылку на стандартный поток ввода, которой по умолчанию связан с клавиатурой:
TextReader trln = Console.In;
Отобразив на экране строку приглашения, программа вводит из стандартного потока ввода текстовую строку и записывает ее в переменную s:
twOut.Write("Введите любую строку: "); string s = trln.ReadLine();
Далее введенная строка отображается на консоли следующим образом:
twOut.WriteLine("Вы ввели строку {0}", s); trln.ReadLine();
Для завершения работы программы необходимо нажать клавишу Enter,
Как видите, приемы работы со стандартными потоками ввода и вывода несложны.