V tej vadnici bomo s pomočjo primerov spoznali Javo BufferedReader in njene metode.
BufferedReader
Razred java.io
paket se lahko uporablja skupaj z drugimi bralci bolj učinkovito branje podatkov (v znakih).
Razširja abstraktni razred Reader
.
Delovanje BufferedReaderja
BufferedReader
Ohranja notranji medpomnilnik 8192 znakov .
Med operacijo branja v BufferedReader
, se z diska prebere del znakov in shrani v notranji vmesnik In iz notranjega medpomnilnika se znaki berejo posamezno.
Zato se zmanjša število komunikacij na disk. Zato je branje znakov hitrejše BufferedReader
.
Ustvarite BufferedReader
Če želite ustvariti a BufferedReader
, moramo najprej uvoziti java.io.BuferedReader
paket. Ko uvozimo paket, tukaj je opisano, kako lahko ustvarimo bralnik.
// Creates a FileReader FileReader file = new FileReader(String file); // Creates a BufferedReader BufferedReader buffer = new BufferedReader(file);
V zgornjem primeru smo BufferedReader
z FileReader
imenovano datoteko ustvarili imenovani vmesni pomnilnik .
Tu ima notranji vmesni pomnilnik BufferedReader
privzeto velikost 8192 znakov. Lahko pa določimo tudi velikost notranjega vmesnega pomnilnika.
// Creates a BufferdReader with specified size internal buffer BufferedReader buffer = new BufferedReader(file, int size);
Medpomnilnik vam bo pomagal hitreje prebrati znake iz datotek.
Metode BufferedReader
BufferedReader
Razred določa izvedb za različne metode, ki so prisotne v Reader
.
metoda read ()
read()
- prebere en sam znak iz notranjega vmesnega pomnilnika bralnikaread(char() array)
- prebere znake iz bralnika in jih shrani v določeno poljeread(char() array, int start, int length)
- iz bralnika prebere število znakov, enako dolžini, in shrani v določeno matriko, začenši od začetka položaja
Denimo, da imamo datoteko z imenom input.txt z naslednjo vsebino.
This is a line of text inside the file.
Poskusimo datoteko prebrati z BufferedReader
.
import java.io.FileReader; import java.io.BufferedReader; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a FileReader FileReader file = new FileReader("input.txt"); // Creates a BufferedReader BufferedReader input = new BufferedReader(file); // Reads characters input.read(array); System.out.println("Data in the file: "); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Izhod
Podatki v datoteki: To je vrstica besedila znotraj datoteke.
V zgornjem primeru smo ustvarili medpomnilnik z imenom input. Medpomnilnik je povezan z datoteko input.txt .
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
Tu smo read()
metodo uporabili za branje vrste znakov iz notranjega vmesnega pomnilnika medpomnilnika.
preskoči () Metoda
Če želimo zavreči in preskočiti določeno število znakov, lahko uporabimo skip()
metodo. Na primer
import java.io.FileReader; import java.io.BufferedReader; public class Main ( public static void main(String args()) ( // Creates an array of characters char() array = new char(100); try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileReader file = new FileReader("input.txt"); // Creates a BufferedReader BufferedReader input = new BufferedReader(file); // Skips the 5 characters input.skip(5); // Reads the characters input.read(array); System.out.println("Data after skipping 5 characters:"); System.out.println(array); // closes the reader input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Izhod
Podatki po preskoku 5 znakov: je vrstica besedila znotraj datoteke.
V zgornjem primeru smo skip()
metodo uporabili za preskok 5 znakov iz bralnika datotek. Zato, znaki 'T'
, 'h'
, 'i'
, 's'
in ' '
se preskočijo iz prvotne datoteke.
metoda close ()
Za zapiranje medpomnilnika lahko uporabimo close()
metodo. Ko je close()
metoda enkrat poklicana, ne moremo uporabljati bralnika za branje podatkov.
Druge metode BufferedReader
Metoda | Opis |
---|---|
ready() | preveri, ali je bralnik datotek pripravljen za branje |
mark() | označite položaj v bralniku, do katerega so bili prebrani podatki |
reset() | vrne kontrolnik do točke v čitalniku, kjer je bila nastavljena oznaka |
Če želite izvedeti več, obiščite Java BufferedReader (uradna dokumentacija Java).