Java BufferedReader (met voorbeelden)

In deze tutorial zullen we met behulp van voorbeelden leren over Java BufferedReader en zijn methoden.

De BufferedReaderklasse van het java.iopakket 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 BufferedReaderonderhoudt een interne buffer van 8192 tekens .

Tijdens het inlezen BufferedReaderwordt 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.BuferedReaderpakket 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 BufferedReaderbenoemde buffer gemaakt met het FileReadergenoemde bestand.

Hier heeft de interne buffer van BufferedReaderde 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 BufferedReaderklasse biedt implementaties voor verschillende methoden die aanwezig zijn in Reader.

read () Methode

  • read() - leest een enkel teken uit de interne buffer van de lezer
  • read(char() array) - leest de karakters van de lezer en slaat op in de gespecificeerde array
  • read(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).

Interessante artikelen...