Java BufferedReader-klasse
Java BufferedReader-klasse
In deze zelfstudie leren we over Java BufferedReader en zijn methoden aan de hand van voorbeelden.
De BufferedReader
klasse van de java.io
pakket kan worden gebruikt met andere lezers om gegevens (in tekens) efficiënter te lezen.
Het breidt de abstracte klasse Reader
uit .
" "
Werking van BufferedReader
De BufferedReader
onderhoudt een interne buffer van 8192 tekens .
Tijdens de leesbewerking in BufferedReader
, wordt een stuk tekens van de schijf gelezen en opgeslagen in de interne buffer. En uit de interne buffer worden karakters afzonderlijk gelezen.
Daarom wordt het aantal communicatie naar de schijf verminderd. Dit is de reden waarom het lezen van karakters sneller gaat met BufferedReader
.
Maak een BufferedReader
Om een BufferedReader
. te maken , moeten we de java.io.BuferedReader
. importeren pakket eerst. Zodra we het pakket hebben geïmporteerd, kunnen we de lezer als volgt maken.
// Creates a FileReader
FileReader file = new FileReader(String file);
// Creates a BufferedReader
BufferedReader buffer = new BufferedReader(file);
In het bovenstaande voorbeeld hebben we een BufferedReader
. gemaakt genaamd buffer met de FileReader
genaamd bestand .
Hier, de interne buffer van de BufferedReader
heeft de standaardgrootte van 8192 tekens. We kunnen echter ook de grootte van de interne buffer specificeren.
// Creates a BufferdReader with specified size internal buffer
BufferedReader buffer = new BufferedReader(file, int size);
De buffer helpt om tekens uit de bestanden sneller te lezen.
Methoden van BufferedReader
De BufferedReader
class biedt implementaties voor verschillende methoden die aanwezig zijn in Reader
.
read()-methode
read()
- leest een enkel karakter uit de interne buffer van de lezerread(char[] array)
- leest de tekens uit de lezer en slaat ze op in de opgegeven arrayread(char[] array, int start, int length)
- leest het aantal tekens gelijk aan lengte van de lezer en slaat op in de opgegeven array vanaf de positie start
Stel dat we bijvoorbeeld een bestand hebben met de naam input.txt met de volgende inhoud.
This is a line of text inside the file.
Laten we proberen het bestand te lezen met 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();
}
}
}
Uitvoer
Data in the file: This is a line of text inside the file.
In het bovenstaande voorbeeld hebben we een gebufferde lezer gemaakt met de naam input . De gebufferde lezer is gekoppeld aan de input.txt bestand.
FileReader file = new FileReader("input.txt");
BufferedReader input = new BufferedReader(file);
Hier hebben we de read()
. gebruikt methode om een reeks tekens uit de interne buffer van de gebufferde lezer te lezen.
skip()-methode
Om het opgegeven aantal tekens te negeren en over te slaan, kunnen we de skip()
. gebruiken methode. Bijvoorbeeld,
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();
}
}
}
Uitvoer
Data after skipping 5 characters: is a line of text inside the file.
In het bovenstaande voorbeeld hebben we de skip()
. gebruikt methode om 5 tekens uit de bestandslezer over te slaan. Vandaar dat de tekens 'T'
, 'h'
, 'i'
, 's'
en ' '
worden overgeslagen uit het originele bestand.
close()-methode
Om de gebufferde lezer te sluiten, kunnen we de close()
. gebruiken methode. Zodra de close()
methode wordt aangeroepen, kunnen we de lezer niet gebruiken om de gegevens te lezen.
Andere methoden van BufferedReader
Methode | Beschrijving |
---|---|
ready() | controleert of de bestandslezer klaar is om gelezen te worden |
mark() | markeer de positie in de lezer tot waar de gegevens zijn gelezen |
reset() | geeft de besturing terug naar het punt in de lezer waar de markering is geplaatst |
Ga voor meer informatie naar Java BufferedReader (officiële Java-documentatie).
Java