V tomto výukovém programu se na příkladu seznámíme s Java Readerem, jeho podtřídami a metodami.
Reader
Třída java.io
balíčku je abstraktní nadtřída, která představuje proud znaků.
Jelikož Reader
jde 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.Reader
nejprve importovat balíček. Jakmile importujeme balíček, můžeme vytvořit čtečku takto.
// Creates a Reader Reader input = new FileReader();
Zde jsme pomocí FileReader
třídy vytvořili čtečku . Je to proto, že Reader
jde 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
Reader
Tří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 Reader
pomocí FileReader
tří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í FileReader
tří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).