В этом руководстве мы узнаем о Java Reader, его подклассах и методах с помощью примера.
Reader
Класс java.io
пакета является абстрактным суперкласса , который представляет собой поток символов.
Поскольку Reader
это абстрактный класс, он бесполезен сам по себе. Однако его подклассы можно использовать для чтения данных.
Подклассы Reader
Чтобы использовать функциональность Reader
, мы можем использовать его подклассы. Некоторые из них:
- BufferedReader
- InputStreamReader
- FileReader
- StringReader
Мы узнаем обо всех этих подклассах в следующем уроке.
Создать читателя
Чтобы создать файл Reader
, мы должны java.io.Reader
сначала импортировать пакет. Как только мы импортируем пакет, мы можем создать читателя.
// Creates a Reader Reader input = new FileReader();
Здесь мы создали читателя, используя FileReader
класс. Потому что Reader
это абстрактный класс. Следовательно, мы не можем создать объект Reader
.
Примечание . Мы также можем создавать программы чтения из других подклассов Reader
.
Методы чтения
Reader
Класс предоставляет различные методы, которые реализуются его подклассов. Вот некоторые из наиболее часто используемых методов:
ready()
- проверяет, готов ли читатель к чтениюread(char() array)
- считывает символы из потока и сохраняет в указанном массивеread(char() array, int start, int length)
- считывает из потока количество символов, равное длине, и сохраняет в указанном массиве, начиная с началаmark()
- отмечает позицию в потоке, до которой были прочитаны данныеreset()
- возвращает элемент управления в точку в потоке, где установлена отметкаskip()
- отбрасывает указанное количество символов из потока
Пример: Reader, использующий FileReader
Вот как мы можем реализовать 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) ( // Creates an array of character char() array = new char(100); try ( // Creates a reader using the FileReader Reader input = new FileReader("input.txt"); // Checks if reader is ready System.out.println("Is there data in the stream? " + input.ready()); // Reads characters input.read(array); System.out.println("Data in the stream:"); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Вывод
Есть ли данные в потоке? true Данные в потоке: это строка текста внутри файла.
В приведенном выше примере мы создали средство чтения с помощью FileReader
класса. Читалка связана с файлом input.txt .
Reader input = new FileReader("input.txt");
Для чтения данных из файла input.txt мы реализовали эти методы.
input.read(); // to read data from the reader input.close(); // to close the reader
Чтобы узнать больше, посетите Java Reader (официальная документация по Java).