Читайте также:
|
Классы 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 | Поможем написать вашу работу | Нарушение авторских прав |