V tomto výukovém programu se na příkladu seznámíme s Java Readerem, jeho podtřídami a metodami.
ReaderTřída java.iobalíčku je abstraktní nadtřída, která představuje proud znaků.
Jelikož Readerjde o abstraktní třídu, není sama o sobě užitečná. Jeho podtřídy však lze použít ke čtení dat.
Podtřídy Readeru
Abychom mohli využít funkčnost Reader, můžeme použít její podtřídy. Někteří z nich jsou:
- Vyrovnávací paměť
- InputStreamReader
- FileReader
- StringReader

O všech těchto podtřídách se dozvíme v dalším kurzu.
Vytvořte čtečku
Aby bylo možné vytvořit Reader, musíme java.io.Readernejprve importovat balíček. Jakmile importujeme balíček, můžeme vytvořit čtečku takto.
// Creates a Reader Reader input = new FileReader();
Zde jsme pomocí FileReadertřídy vytvořili čtečku . Je to proto, že Readerjde o abstraktní třídu. Proto nemůžeme vytvořit objekt Reader.
Poznámka : Můžeme také vytvářet čtečky z jiných podtříd třídy Reader.
Metody čtečky
ReaderTřída poskytuje různé metody, které jsou implementovány jejích podtříd. Zde jsou některé z běžně používaných metod:
ready()- zkontroluje, zda je čtečka připravena ke čteníread(char() array)- načte znaky ze streamu a uloží je do zadaného poleread(char() array, int start, int length)- načte počet znaků rovných délce ze streamu a uloží do zadaného pole od začátkumark()- označí pozici v proudu, do které byla načtena datareset()- vrátí ovládací prvek do bodu v proudu, kde je nastavena značkaskip()- zahodí zadaný počet znaků ze streamu
Příklad: Čtečka pomocí FileReaderu
Zde je způsob, jak můžeme implementovat Readerpomocí FileReadertřídy.
Předpokládejme, že máme soubor s názvem input.txt s následujícím obsahem.
This is a line of text inside the file.
Zkusme tento soubor přečíst pomocí FileReader(podtřídy 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(); ) ) )
Výstup
Jsou ve streamu data? true Data v proudu: Toto je řádek textu uvnitř souboru.
Ve výše uvedeném příkladu jsme pomocí FileReadertřídy vytvořili čtečku . Čtečka je propojena se souborem input.txt .
Reader input = new FileReader("input.txt");
Pro čtení dat ze souboru input.txt jsme implementovali tyto metody.
input.read(); // to read data from the reader input.close(); // to close the reader
Chcete-li se dozvědět více, navštivte Java Reader (oficiální dokumentace Java).








