Работа с StreamWriter и StreamReader

Работа с StreamWriter и StreamReader

Классы StreamWriter и StreamReader оказываются полезны тогда, когда приходится читать или записывать символьные данные (например, строки). Оба эти типа по умолчанию работают с символами Unicode, однако вы можете изменить эти установки, предоставив ссылку на правильно сконфигурированный объект System.Text.Encoding. Чтобы упростить рассмотрение, предположим, что предлагаемое по умолчавию кодирование в символы Unicode как раз и является подходящим.

Тип StreamReader получается из абстрактного типа TextReader. To же можно сказать и о родственном типе StringReader (он будет обсуждаться в этой главе позже). Базовый класс TextReader обеспечивает каждому из этих "последователей" очень небольшой набор функциональных возможностей, среди которых, в частности, возможность чтения символов из потока и их добавление в поток.

Тип StreamWriter (как и StringWriter, который также будет рассматриваться позже) получается из абстрактного базового класса TextWriter. Этот класс определяет члены, позволяющие производным типам записывать текстовые данные в имеющийся символьный поток. Взаимосвязь между этими новыми типами ввода-вывода показана на рис. 16.7.

Чтобы помочь вам понять возможности записи классов StreamWriter и StringWriter, в табл. 16.7 предлагаются описания основных членов абстрактного базового класса TextWriter.

Рис. 16.7. Читатели и писатели

Таблица 16.7. Основные члены TextWriter 

Член Описание
Close() Закрывает записывающий объект и освобождает связанные с ним ресурсы. При этом автоматически очищается буфер
Flush() Очищает все буферы текущего записывающего объекта с тем, чтобы все данные буфера были записаны на соответствующее устройство, но не закрывает сам записывающий объект
NewLine Указывает константу обрыва строки для производного класса записывающего объекта. По умолчанию признаком обрыва строки является возврат каретки с переходом на новую строку ( )
Write() Записывает строку в текстовый поток без добавления константы обрыва строки
WriteLine() Записывает строку в текстовый поток с добавлением константы обрыва строки 

Замечание. Последние два из указанных в таблице членов класса TextWriter, вероятно, покажутся вам знакомыми. Если вы помните, у типа System.Console есть члены Write() и WriteLine(), записывающие текстовые данные в устройство стандартного вывода. На самом деле свойство Console.In является упаковкой для TextWriter, а свойство Console.Out – для TextReader.

Производный класс StreamWriter обеспечивает подходящую реализацию методов Write(), Close() и Flush() и определяет дополнительное свойство AutoFlush. Это свойство, когда его значение равно true (истина), заставляет StreamWriter при выполнении операции записи записывать все данные. Можно добиться лучшей производительности, если установить для AutoFlush значение false (ложь), поскольку иначе при каждой записи StreamWriter будет вызываться Close().

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

1.3.3 Лабораторная работа #3 "Работа с внешними устройствами"

Из книги Программирование в X Window средствами Free Pascal автора Полищук А П

1.3.3 Лабораторная работа #3 "Работа с внешними устройствами" 1. Используя функции XKeysymToString() и XKeycodeToKeysym(), напишите программу, которая реагирует на нажатие клавиш в окне выдачей в него кода символа, состояния модификаторов и символьной расшифровки нажатой клавиши. 2. Напишите


Практическая работа 5. Работа с фрагментами текста

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

Практическая работа 5. Работа с фрагментами текста Задание. Создать текстовый документ и переставить местами его отдельные фрагменты. Вставить в текстовый документ результаты вычислений в Калькуляторе.Последовательность выполнения1. Запустите Блокнот и создайте


Практическая работа 8. Работа с меню Пуск

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Практическая работа 8. Работа с меню Пуск Задание. Настроить значки меню Пуск.Последовательность выполнения1. Запустите программу Блокнот с помощью строки поиска в меню Пуск.2. Запустите программу Калькулятор с помощью строки поиска, не пользуясь мышью. Для этого:1)


Практическая работа 12. Работа с окнами папок

Из книги Раскрутка: секреты эффективного продвижения сайтов автора Евдокимов Николай Семенович

Практическая работа 12. Работа с окнами папок Задание. Изучить работу с окнами папок. Научиться перемещаться по файлам и папкам.Последовательность выполнения1. С помощью меню Пуск откройте папку Компьютер. Ознакомьтесь с содержимым окна, покажите его составляющие.2. С


Практическая работа 14. Работа с файлами и папками

Из книги автора

Практическая работа 14. Работа с файлами и папками Задание. Научиться создавать папки, копировать, перемещать, переименовывать и удалять файлы.Последовательность выполнения1. Откройте с помощью меню Пуск папку Документы.2. В папке Документы создайте новую папку с именем


Практическая работа 15. Работа с изображениями в Проводнике

Из книги автора

Практическая работа 15. Работа с изображениями в Проводнике Задание. Просмотреть и отредактировать изображения с помощью встроенных средств Windows Vista.Последовательность выполнения1. Откройте папку, содержащую цифровые изображения. Это может быть папка с вашими


Практическая работа 16. Работа со сменными носителями

Из книги автора

Практическая работа 16. Работа со сменными носителями Задание 1. Скопировать файлы и папки на flash-диск.Последовательность выполнения1. Подключите к компьютеру устройство flash-памяти. При этом обратите внимание на размещение выступов на разъеме и самом устройстве, чтобы


Практическая работа 19. Поиск в Интернете. Работа с папками Избранное и Журнал

Из книги автора

Практическая работа 19. Поиск в Интернете. Работа с папками Избранное и Журнал Задание 1. Научиться выполнять поиск в Интернете, настраивать параметры поиска, работать с папками Избранное и Журнал.Последовательность выполнения1. Запустите Internet Explorer.2. Щелкните кнопкой мыши


Практическая работа 24. Работа с программой Dr.Web

Из книги автора

Практическая работа 24. Работа с программой Dr.Web Задание. Изучить приемы работы с программой Dr.Web.Для выполнения этой работы на компьютере должен быть установлен антивирус Dr.Web. При отсутствии какой-либо антивирусной программы на вашем компьютере вы можете установить Dr.Web


Практическая работа 26. Работа с файловым менеджером

Из книги автора

Практическая работа 26. Работа с файловым менеджером Задание 1. Установить и настроить программу Total Commander.Последовательность выполнения1. Загрузите последнюю версию Total Commander с сайта wincmd.ru.2. Запустите загруженный файл и установите программу, ответив на несколько простых


Практическая работа 27. Работа с проигрывателем Windows Media

Из книги автора

Практическая работа 27. Работа с проигрывателем Windows Media Задание 1. Изучить средства управления воспроизведением проигрывателя Windows Media.Последовательность выполнения1. Откройте для воспроизведения с помощью проигрывателя любой музыкальный файл, например из папки


Практическая работа 30. Редактирование документа. Работа с фрагментами.

Из книги автора

Практическая работа 30. Редактирование документа. Работа с фрагментами. Задание. Отредактировать сохраненный документ.Последовательность выполнения1. Откройте ранее сохраненный документ Урок 1 любым способом.2. Выделите слово, предложение, строку, абзац, весь документ.


Практическая работа 53. Запуск Access. Работа с объектами базы данных

Из книги автора

Практическая работа 53. Запуск Access. Работа с объектами базы данных Задание. Ознакомиться с окном программы Access. Запустить и рассмотреть учебную базу данных. ВНИМАНИЕ При выполнении задания помните, что все внесенные в базу данных изменения записываются немедленно и их


Практическая работа 61. Работа с оборудованием

Из книги автора

Практическая работа 61. Работа с оборудованием Задание. Проверить параметры и работу установленного оборудования и выполнить проверку жесткого диска.Последовательность выполнения1. Щелкните правой кнопкой мыши на значке Компьютер и выберите пункт Свойства. В


Непосредственное создание типов StreamWriter/StreamReader

Из книги автора

Непосредственное создание типов StreamWriter/StreamReader Одной из смущающих особенностей работы с типами из System.IO является то, что часто одних и тех же результатов можно достичь в рамках множества подходов. Например, вы видели, что можно получить StreamWriter из File или из FileInfo, используя


Работа не волк. Работа – вервольф

Из книги автора

Работа не волк. Работа – вервольф Недаром твердят, что SEO – это индустрия. Тяжелая или легкая промышленность? Скорее нелегкая. Зато рабочих мест она порождает порядочное количество – от горняка в линк — менеджерском забое до конторского инженера в обличии высоколобого