РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
851 of 1163 menu

Класс Reader

Класс Reader - это абстрактный класс из пакета java.io, который служит основой для всех классов, читающих символьные данные. В отличие от байтовых потоков (InputStream), Reader работает с символами Unicode, что делает его удобным для чтения текстовых файлов. Основные методы класса позволяют читать один символ, массив символов или заполнять буфер. Поскольку класс абстрактный, напрямую создать его экземпляр нельзя - используются его наследники, например, FileReader или BufferedReader. В первом параметре методов чтения обычно передается буфер (массив символов), во втором - смещение в буфере, в третьем - количество символов для чтения.

Синтаксис

public abstract class Reader implements Readable, Closeable

Основные методы:

int read() int read(char[] cbuf) int read(char[] cbuf, int off, int len) long skip(long n) boolean ready() void close()

Пример

Рассмотрим использование класса Reader через его наследника FileReader. Создадим файл, запишем в него строку, а затем прочитаем её посимвольно:

import java.io.FileReader; import java.io.FileWriter; import java.io.Reader; import java.io.IOException; public class Main { public static void main(String[] args) { try { FileWriter writer = new FileWriter("test.txt"); writer.write("abcde"); writer.close(); Reader reader = new FileReader("test.txt"); int ch; String res = ""; while ((ch = reader.read()) != -1) { res += (char) ch; } reader.close(); System.out.println(res); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } } }

Результат выполнения кода:

"abcde"

Пример

Теперь прочитаем данные в массив символов с помощью метода read с тремя параметрами - буфером, смещением и длиной:

import java.io.FileReader; import java.io.FileWriter; import java.io.Reader; import java.io.IOException; public class Main { public static void main(String[] args) { try { FileWriter writer = new FileWriter("test.txt"); writer.write("12345"); writer.close(); Reader reader = new FileReader("test.txt"); char[] buffer = new char[5]; int count = reader.read(buffer, 0, 5); reader.close(); String res = new String(buffer, 0, count); System.out.println(res); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } } }

Результат выполнения кода:

"12345"

Смотрите также

  • метод read,
    который читает символы из потока
  • метод close,
    который закрывает поток и освобождает ресурсы
  • класс BufferedReader,
    который буферизует чтение символов
  • класс InputStreamReader,
    который преобразует байтовый поток в символьный
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить