Иллюстрированный самоучитель по VB.NET


TextReader, TextWriter и производные классы


Двоичные потоки чтения/записи хорошо подходят для случаев, когда программисту точно известен порядок следования данных в двоичном формате, но прочитать полученный файл бывает непросто. Таким образом, для хранения обычного текста в файле лучше поискать другой вариант. В этой стандартной ситуации вместо пары BinaryReader/BinaryWriter следует использовать пару StreamReader/StreamWriter. По функциональным возможностям классы StreamReader и StreamWriter близки к традиционным средствам последовательного доступа к файлам из прежних версий VB (если не считать того, что в этих классах появилась поддержка Unicode). В классе StreamReader помимо метода Read также имеется удобный метод ReadToEnd, позволяющий прочитать весь файл за одну операцию.

Обратите внимание, что эти классы объявлены производными от абстрактных классов TextReader и TextWriter, а не от Stream. Эти абстрактные классы, объявленные с атрибутом Must Inherit, содержат общие средства чтения/записи текста. Их методы перечислены в табл. 9.11 и 9.12.

Таблица 9.11. Основные методы класса TextReader

Метод

Описание

Close Закрывает существующий поток TextReader и освобождает все системные ресурсы, связанные с ним
Peek

Возвращает следующий символ в потоке без смещения указателя текущей позиции

Read Читает один символ из входного потока. Перегруженная версия читает в символьный массив определенное количество символов начиная с заданной позиции
ReadLine Читает символы до комбинации CR+LF и возвращает их в виде строкового значения. Если текущая позиция находится в конце файла, метод возвращает Nothing
ReadToEnd Читает все символы от текущей позиции до конца TextReader и возвращает их в виде одной строки (метод особенно удобен при работе с небольшими файлами)

Таблица 9.12. Основные методы класса TextWriter

Метод

Описание

Close Закрывает существующий поток TextWriter и освобождает все системные ресурсы, связанные с ним
Write Перегруженные версии метода позволяют записывать в поток любые базовые типы данных в текстовом формате
WriteLine Перегружается для записи в поток любых базовых типов данных в текстовом формате, за которыми записывается комбинация CR+LF
<


- Начало -  - Назад -  - Вперед -