Java BufferedWriter: Efficiënte karakter-I/O uitgelegd
Java BufferedWriter
Deze gids legt de Java BufferedWriter-klasse uit, de interne buffering, kernmethoden en praktische codevoorbeelden.
Inleiding
De BufferedWriter-klasse in het java.io-pakket wrapt een andere Writer om efficiënte karaktermoutput te bieden. Door data in het geheugen te bufferen, vermindert het dure schijf-I/O-operaties.
Hoe BufferedWriter werkt
De klasse onderhoudt een interne buffer van 8.192 karakters (standaardgrootte). Wanneer je data schrijft, worden karakters eerst in deze buffer opgeslagen. Zodra de buffer vol is of de writer gesloten wordt, worden de inhoud naar de onderliggende stream geflusht.
Deze strategie minimaliseert het aantal schijfschrijfacties, wat karaktermoutput aanzienlijk versnelt.
Een BufferedWriter aanmaken
Importeer de klasse en creëer een BufferedWriter door een FileWriter (of elke andere Writer) te wrappen:
FileWriter bestand = new FileWriter("output.txt");
BufferedWriter buffer = new BufferedWriter(bestand);
De buffer is standaard 8.192 karakters, maar je kunt een aangepaste grootte opgeven:
BufferedWriter buffer = new BufferedWriter(bestand, 16384); // 16KB buffer
BufferedWriter-methoden
write()
write(int c)– schrijft een enkel karakterwrite(char[] cbuf)– schrijft een array karakterswrite(String str)– schrijft een string
Voorbeeld: Naar een bestand schrijven
import java.io.FileWriter;
import java.io.BufferedWriter;
public class Main {
public static void main(String[] args) {
String data = "Dit is de data in het outputbestand";
try {
FileWriter bestand = new FileWriter("output.txt");
BufferedWriter out = new BufferedWriter(bestand);
out.write(data);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Het resulterende output.txt bevat de gespecificeerde string.
flush()
Dwingt de gebufferde data om direct naar de onderliggende stream geschreven te worden.
out.flush(); // schrijft gebufferde karakters naar het bestand
close()
Sluit de writer en geeft systeembronnen vrij. Na close() kan de writer niet meer gebruikt worden.
Overige nuttige methoden
| Methode | Beschrijving |
|---|---|
newLine() | Voegt de platform-specifieke regelscheiding in |
append(char c) | Voegt een enkel karakter toe |
append(CharSequence csq) | Voegt een karaktermreeks toe |
Voor de complete API, raadpleeg de officiële Java BufferedWriter-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 BufferedReader: Efficiënte karakter-stream-afhandeling
- Java Generics: Herbruikbare, type-veilige code bouwen
- Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen