Java BufferedReader: Efficiënte karakter-stream-afhandeling
Java BufferedReader-klasse
Ontdek hoe de BufferedReader-klasse I/O-prestaties in Java verbetert met praktische voorbeelden en diepgaande methode-uitleg.
De BufferedReader-klasse, onderdeel van het java.io-pakket, wrapt een andere Reader om efficiënte karakterminput te bieden. Door stukken data in een interne buffer te lezen, minimaliseert het dure schijf-I/O-operaties.
Hoe BufferedReader werkt
Intern onderhoudt BufferedReader een buffer van 8.192 karakters (standaardgrootte). Tijdens een leesoperatie wordt een blok karakters uit het bronbestand opgehaald en in deze buffer opgeslagen. Volgende reads halen dan karakters één voor één uit de buffer, wat het aantal schijftoegangen drastisch vermindert en I/O versnelt.
Een BufferedReader aanmaken
Om BufferedReader te gebruiken, importeer het uit java.io en wrap een andere Reader-implementatie, zoals FileReader:
import java.io.FileReader;
import java.io.BufferedReader;
FileReader bestand = new FileReader("voorbeeld.txt");
BufferedReader reader = new BufferedReader(bestand);
Je kunt ook een aangepaste buffergrootte opgeven:
BufferedReader reader = new BufferedReader(bestand, 16384); // 16KB buffer
Kernmethoden van BufferedReader
read()
int read()– leest een enkel karakter uit de bufferint read(char[] cbuf)– leest karakters in de meegeleverde arrayint read(char[] cbuf, int off, int len)– leest maximaal len karakters in de array beginnend bij offset off
Voorbeeld: De volledige inhoud van input.txt inlezen in een karakterarray:
import java.io.FileReader;
import java.io.BufferedReader;
class Main {
public static void main(String[] args) {
char[] buffer = new char[100];
try (FileReader bestand = new FileReader("input.txt");
BufferedReader reader = new BufferedReader(bestand)) {
reader.read(buffer);
System.out.println("Data in het bestand:\n" + new String(buffer));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Output
Data in het bestand: Dit is een regel tekst in het bestand.
skip()
De skip(long n)-methode gooit de volgende n karakters uit de stream weg:
reader.skip(5); // slaat "Dit " over
Na overslaan, levert het lezen van de overgebleven inhoud:
Data na overslaan van 5 karakters: is een regel tekst in het bestand.
close()
Sluit de reader altijd om systeembronnen vrij te geven:
reader.close();
Overige nuttige methoden
| Methode | Beschrijving |
|---|---|
ready() | Controleert of de stream klaar is om te lezen zonder te blokkeren |
mark(int readAheadLimit) | Markeert de huidige positie in de stream |
reset() | Zet de stream terug naar de meest recente markering |
Voor een complete referentie, bezoek de officiële Java-documentatie.
Java
- Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
- Java instanceof operator: een uitgebreide gids
- Java-erfenis meesteren: concepten, typen en praktische voorbeelden
- Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
- Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
- Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
- Java Generics: Herbruikbare, type-veilige code bouwen
- Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen
- Bestanden Lezen in Java met BufferedReader – Een Praktische Gids met Voorbeelden