English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом учебнике мы рассмотрим пример Java Reader, его подклассы и его методы.
Класс Reader в пакете java.io является абстрактной суперклассой, которая представляет поток символов.
Поскольку Reader является абстрактным классом, он сам по себе не работает. Однако, его подклассы могут использоваться для чтения данных.
Чтобы использовать функции Reader, мы можем использовать их подклассы. Среди них есть такие:
В следующем учебнике мы изучим все эти подклассы.
Для создания Reader我们必须 сначала импортировать пакет java.io.Reader. После импорта пакета мы можем создать Reader.
// Создание Reader Reader input = new FileReader();
Здесь мы используем класс FileReader для создания Reader. Это потому, что Reader является абстрактным классом. Таким образом, мы не можем создать объект Reader.
Внимание: Мы также можем создать Reader из других подклассов Reader.
Этот класс Reader предоставляет методы, реализованные его подклассами. Вот некоторые из часто используемых методов:
ready() - Проверяет, готов ли Reader для чтения
read(char[] array) - Читает символы из потока и хранит их в указанном массиве
read(char[] array, int start, int length) - Читает из потока указанное количество символов и хранит их в указанном массиве, начиная с start
mark() - Помечает положение уже прочитанных данных в потоке
reset() - Восстанавливает поток. Если поток был помечен, то попытается пометить его заново, чтобы переместить. Если поток не был помечен, то попытается его восстановить в соответствующее положение в некоторых методах специфичных для потоков, например, переместив его в начальную точку.
skip() - Удаляет из потока указанное количество символов
Вот как мы реализуем методы Reader класса FileReader.
Предположим, что у нас есть файл с именемinput.txtфайл, содержащий следующее содержимое.
This is a line of text inside the file.
Позвольте нам попробовать использовать FileReader (подкласс Reader) для чтения этого файла.
import java.io.Reader; import java.io.FileReader; class Main { public static void main(String[] args) { //Создание массива символов char[] array = new char[100]; try { //Использование FileReader для создания Reader Reader input = new FileReader("input.txt"); //Проверка готовности Reader System.out.println("Есть ли данные в потоке? " + input.ready()); //Чтение символов input.read(array); System.out.println("В потоке данных:"); System.out.println(array); // Закрыть reader input.close(); } catch(Exception e) { e.getStackTrace(); } } }
Результат вывода
Есть ли данные в потоке? true Данные в потоке: This is a line of text inside the file.
В примере выше мы использовали класс FileReader для создания читателя. Reader и файлinput.txtссылка.
Reader input = new FileReader("input.txt");
Чтобы изinput.txtЧтение данных из файла, мы уже реализовали эти методы.
input.read(); //Чтение данных из reader input.close(); //Закрыть reader