I denne vejledning lærer vi om Java BufferedReader og dens metoder ved hjælp af eksempler.
Den BufferedReader
klasse af java.io
pakken kan bruges med andre læsere til at læse data (i tegn) mere effektivt.
Det udvider den abstrakte klasse Reader
.
Arbejde med BufferedReader
Den BufferedReader
opretholder en intern buffer på 8192 tegn .
Under læsning i læses BufferedReader
et stykke tegn fra disken og lagres i den interne buffer. Og fra den interne buffer læses tegn individuelt.
Derfor reduceres antallet af kommunikation til disken. Dette er grunden til at læse tegn er hurtigere at bruge BufferedReader
.
Opret en BufferedReader
For at oprette en BufferedReader
skal vi først importere java.io.BuferedReader
pakken. Når vi først har importeret pakken, kan du oprette læseren her.
// Creates a FileReader FileReader file = new FileReader(String file); // Creates a BufferedReader BufferedReader buffer = new BufferedReader(file);
I ovenstående eksempel har vi oprettet en BufferedReader
navngivet buffer med den FileReader
navngivne fil.
Her har den interne buffer i BufferedReader
standardstørrelsen 8192 tegn. Vi kan dog også specificere størrelsen på den interne buffer.
// Creates a BufferdReader with specified size internal buffer BufferedReader buffer = new BufferedReader(file, int size);
Bufferen hjælper med at læse tegn fra filerne hurtigere.
Metoder til BufferedReader
Den BufferedReader
klasse giver implementeringer for forskellige metoder til stede i Reader
.
læs () Metode
read()
- læser et enkelt tegn fra den interne buffer i læserenread(char() array)
- læser tegnene fra læseren og gemmer i den angivne matrixread(char() array, int start, int length)
- læser antallet af tegn svarende til længden fra læseren og gemmer i det angivne array startende fra positionens start
Antag for eksempel, at vi har en fil med navnet input.txt med følgende indhold.
This is a line of text inside the file.
Lad os prøve at læse filen ved hjælp af 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(); ) ) )
Produktion
Data i filen: Dette er en tekstlinje inde i filen.
I ovenstående eksempel har vi oprettet en bufferet læser med navnet input. Den bufrede læser er knyttet til input.txt- filen.
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
Her har vi brugt read()
metoden til at læse en række tegn fra den bufferbufferlæsers interne buffer.
spring () Metode
For at kassere og springe det angivne antal tegn over kan vi bruge skip()
metoden. For eksempel,
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(); ) ) )
Produktion
Data efter at have sprunget over 5 tegn: er en tekstlinje inde i filen.
I ovenstående eksempel har vi brugt skip()
metoden til at springe over 5 tegn fra fillæseren. Derfor de tegn 'T'
, 'h'
, 'i'
, 's'
og ' '
er sprunget fra den oprindelige fil.
close () Metode
For at lukke den bufrede læser kan vi bruge close()
metoden. Når close()
metoden er kaldt, kan vi ikke bruge læseren til at læse dataene.
Andre metoder til BufferedReader
Metode | Beskrivelse |
---|---|
ready() | kontrollerer, om fillæseren er klar til at blive læst |
mark() | markere positionen i læseren, op til hvilken data er læst |
reset() | returnerer kontrollen til det punkt i læseren, hvor mærket blev sat |
For at lære mere, besøg Java BufferedReader (officiel Java-dokumentation).