V tej vadnici bomo s pomočjo primera spoznali Java Reader, njegove podrazrede in metode.
Reader
Razred java.io
paketa je abstraktna nadrazreda, ki predstavlja tok znakov.
Ker Reader
je abstraktni razred, sam po sebi ni koristen. Vendar lahko njegove podrazrede uporabljamo za branje podatkov.
Podrazredi bralca
Za uporabo funkcionalnosti Reader
lahko uporabimo njegove podrazrede. Nekateri med njimi so:
- BufferedReader
- InputStreamReader
- FileReader
- StringReader
O vseh teh podrazredih bomo izvedeli v naslednji vadnici.
Ustvari bralnik
Če želite ustvariti a Reader
, moramo najprej uvoziti java.io.Reader
paket. Ko uvozimo paket, tukaj je opisano, kako lahko ustvarimo bralnik.
// Creates a Reader Reader input = new FileReader();
Tu smo ustvarili bralnik, ki uporablja FileReader
razred. To je zato, ker Reader
je abstraktni razred. Zato ne moremo ustvariti predmeta Reader
.
Opomba : Bralnike lahko ustvarjamo tudi iz drugih podrazredov Reader
.
Metode bralca
Reader
Razred določa različne metode, ki jih izvajajo njegove podrazrede. Tu je nekaj najpogosteje uporabljenih metod:
ready()
- preveri, ali je bralnik pripravljen za branjeread(char() array)
- bere znake iz toka in shrani v določeno matrikoread(char() array, int start, int length)
- iz toka prebere število znakov, enako dolžini, in shrani v določeno polje od začetkamark()
- označuje položaj v toku, do katerega so bili prebrani podatkireset()
- vrne kontrolnik na točko v toku, kjer je nastavljena oznakaskip()
- zavrže določeno število znakov iz toka
Primer: Bralnik, ki uporablja FileReader
Tukaj je opisano, kako lahko izvedemo Reader
uporabo FileReader
razreda.
Recimo, da imamo datoteko z imenom input.txt z naslednjo vsebino.
This is a line of text inside the file.
Poskusimo prebrati to datoteko z uporabo FileReader
(podrazred 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(); ) ) )
Izhod
Ali so v toku podatki? true Podatki v toku: To je vrstica besedila znotraj datoteke.
V zgornjem primeru smo ustvarili bralnik, ki uporablja FileReader
razred. Čitalnik je povezan z datoteko input.txt .
Reader input = new FileReader("input.txt");
Za branje podatkov iz datoteke input.txt smo uvedli te metode.
input.read(); // to read data from the reader input.close(); // to close the reader
Če želite izvedeti več, obiščite Java Reader (uradna dokumentacija Java).