In deze tutorial zullen we met behulp van voorbeelden leren over Java BufferedReader en zijn methoden.
De BufferedReader
klasse van het java.io
pakket kan met andere lezers worden gebruikt om gegevens (in tekens) efficiënter te lezen.
Het breidt de abstracte klasse uit Reader
.
Werking van BufferedReader
Het BufferedReader
onderhoudt een interne buffer van 8192 tekens .
Tijdens het inlezen BufferedReader
wordt een stuk tekens van de schijf gelezen en opgeslagen in de interne buffer. En uit de interne buffer worden de karakters afzonderlijk gelezen.
Daarom wordt het aantal communicatie met de schijf verminderd. Dit is de reden waarom het lezen van tekens sneller gaat met BufferedReader
.
Maak een BufferedReader
Om een te maken BufferedReader
, moeten we eerst het java.io.BuferedReader
pakket importeren . Zodra we het pakket hebben geïmporteerd, kunnen we als volgt de reader 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
benoemde buffer gemaakt met het FileReader
genoemde bestand.
Hier heeft de interne buffer van BufferedReader
de standaardgrootte 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
klasse biedt implementaties voor verschillende methoden die aanwezig zijn in Reader
.
read () Methode
read()
- leest een enkel teken uit de interne buffer van de lezerread(char() array)
- leest de karakters van de lezer en slaat op in de gespecificeerde arrayread(char() array, int start, int length)
- leest het aantal tekens dat gelijk is aan de lengte van de lezer en slaat het op in de opgegeven array vanaf het begin van de positie
Stel dat we 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
Gegevens in het bestand: dit is een regel tekst in het bestand.
In het bovenstaande voorbeeld hebben we een gebufferde lezer gemaakt met de naam input. De gebufferde lezer is gekoppeld aan het bestand input.txt .
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
Hier hebben we de read()
methode gebruikt om een reeks tekens uit de interne buffer van de gebufferde lezer te lezen.
skip () methode
Om het opgegeven aantal tekens weg te gooien en over te slaan, kunnen we de skip()
methode gebruiken. 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
Gegevens na het overslaan van 5 tekens: is een regel tekst in het bestand.
In het bovenstaande voorbeeld hebben we de skip()
methode gebruikt om 5 tekens uit de bestandslezer over te slaan. Vandaar dat de karakters 'T'
, 'h'
, 'i'
, 's'
en ' '
worden overgeslagen van het originele bestand.
close () Methode
Om de gebufferde lezer te sluiten, kunnen we de close()
methode gebruiken. Als de close()
methode eenmaal is aangeroepen, kunnen we de lezer niet gebruiken om de gegevens te lezen.
Andere methoden van BufferedReader
Methode | Omschrijving |
---|---|
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 het besturingselement terug naar het punt in de lezer waar het merkteken werd geplaatst |
Ga voor meer informatie naar Java BufferedReader (officiële Java-documentatie).