Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Классы Reader и Writer.

Читайте также:
  1. An international travel magazine has asked its readers to describe a famous city. Write your description.
  2. Reader Comments
  3. Static внутренние классы
  4. Абстрактные классы
  5. Абстрактные методы и классы
  6. Внутренние классы
  7. Внутренние классы в методе и контексте
  8. Внутренние классы и структуры управления
  9. Группы поддержки, классы и мастерские
  10. Девятирунный расклад. Классы значений

Классы Reader и Writer работают с потоками символов (char). Только, чтение массива символов в Reader описывается методом read(char[]), а запись в Writer – write(char[]).

Класс Reader. Служит базовым классом в иерархии. Имеет точно такие же методы, как и класс InputStream.

Класс FileReader. Имеет два основных конструктора, позволяющих открыть файл:

public FileReader(File file) throws FileNotFoundException

public FileReader(String name) throws FileNotFoundException

Больше никаких "своих" возможностей не имеет, все остальное он наследует от своих предков.

Класс BufferedReader. Это самый интересный и важный для нас класс в этой иерархии. Он не только обеспечивает эффективный буферизованный ввод данных, но и имеет очень важный метод:

public String readLine() throws IOException

Этот метод позволяет читать строку из входного потока. В комбинации с другими классами Java этот метод позволяет организовать ввод с разбиением на слова, вводить числа и т.д.

Обратимся к документации по классу BufferedReader и обратим внимание на его конструкторы. Основной из них это:

public BufferedReader(Reader in)

Т.е. сам по себе этот класс использовать нельзя - только в комбинации с другим классом, например с FileReader.

Как мы увидим в примере далее, основной способ открытия файла для чтения выглядит так:

BufferedReader in = new BufferedReader(new FileReader("myfile.txt"));

Типичный пример чтения строки из файла:

String line;

line = in.readLine();

Это наиболее важные классы иерархии Reader. Но для полноты картины рассмотрим и другие классы этой иерархии.

Класс PushbackReader. Позволяет возвращать обратно в поток прочитанную информацию (или любую другую) так, что при следующем чтении будет читаться эта возвращенная в поток информация. Это не означает, что мы, скажем, модифицируем читаемый файл. Все модификации производятся во внутреннем буфере данного класса. Кстати, размер этого буфера ограничен и задается в конструкторе класса.

Класс InputStreamReader. Это вспомогательный класс-переходник от иерархии InputStream к иерархии Reader.

Класс PipedReader. Используется для связи программ друг с другом при помощи каналов (pipes).

Класс StringReader. Обеспечивает работу по чтению информации из строки при помощи средств, предусмотренных иерархией Reader.

Как и в случае с иерархией Reader иерархия Writer сама по себе ничего не добавляет к функциональности иерархии OutputStream и отличается от нее всего несколькими нюансами.

Так, вместо ByteArrayOutputStream в данной иерархии присутствует более полезный класс StringWriter, позволяющий выводить информацию в строку.

Практическое использование иерархии Writer Основным способом создания потока вывода в файл является

PrintWriter fout = new PrintWriter(new BufferedWriter(new FileWriter(имя_файла)));После создания такого потока в него можно выводить информацию при помощи методов print и println.



Дата добавления: 2015-09-11; просмотров: 130 | Поможем написать вашу работу | Нарушение авторских прав

Обработка исключений | Методы класса Throwable | Классы DataInputStream и DataOutputStream | Организация диалогов, класс JOptionPane и его методы | Панели и менеджеры раположения | Надписи, конструкторы и методы | Списки JList, конструкторы, методы | Интерфейсы-слушатели и классы-адаптеры |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.05 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав