В този урок ще научим за 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
В 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).