Java PrintWriter: Functionaliteiten, methoden en praktische voorbeelden
Java PrintWriter onder de knie
In deze tutorial verkennen we de Java PrintWriter-klasse, de print-methoden en praktische codevoorbeelden.
Inleiding
De PrintWriter-klasse, onderdeel van java.io, is ontworpen voor het schrijven van karaktermdata naar tekstbestanden of andere output-streams. Het breidt Writer uit en biedt handige formatteermethoden.
In tegenstelling tot andere writers, converteert PrintWriter primitieve typen (int, float, char, etc.) automatisch naar tekst voordat ze geschreven worden. Het gooit ook nooit een IOException; fouten detecteer je met checkError().
Auto-flush is een sleutelfeature: als ingeschakeld, dwingt elke aanroep naar println() of printf() de buffer om te flushten naar de onderliggende stream.
Hoe PrintWriter werkt
PrintWriter schrijft geformatteerde tekst naar een onderliggende Writer of OutputStream. De constructor accepteert een autoFlush-vlag en optioneel een Charset voor encoding.
Een PrintWriter aanmaken
Eerst de klasse importeren:
import java.io.PrintWriter;
1. Vanaf een bestaande Writer
FileWriter bestand = new FileWriter("output.txt");
PrintWriter out = new PrintWriter(bestand, true); // autoFlush = true
2. Vanaf een OutputStream
FileOutputStream fos = new FileOutputStream("output.txt");
PrintWriter out = new PrintWriter(fos, true);
3. Direct vanuit een bestandsnaam
PrintWriter out = new PrintWriter("output.txt", true);
4. Karakterencoding specificeren
import java.nio.charset.Charset;
PrintWriter out = new PrintWriter("output.txt", true, Charset.forName("UTF-8"));
Een Charset gebruiken zorgt ervoor dat je tekst met de gewenste encoding geschreven wordt.
Kernmethoden
print() en println()
Deze methoden schrijven ruwe of regel-getermineerde tekst:
print(obj)– schrijft de string-representatie vanobjzonder newlineprintln(obj)– schrijft de string en voegt de systeem-regelscheider toe
printf()
De printf-familie ondersteunt Java's Formatter-syntax. Voorbeeld:
out.printf("Ik ben %d jaar oud.", 25);
Overige nuttige methoden
| Methode | Beschrijving |
|---|---|
close() | Sluit de stream en geeft bronnen vrij |
checkError() | Retourneert true als een schrijffout is opgetreden |
append(CharSequence) | Voegt de gegeven reeks toe aan de writer |
Praktisch voorbeeld
Hieronder een compleet, draaibaar programma dat geformatteerde tekst naar output.txt schrijft met printf():
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
public class PrintWriterDemo {
public static void main(String[] args) {
try (PrintWriter out = new PrintWriter(new FileWriter("output.txt"), true)) {
int leeftijd = 25;
out.printf("Ik ben %d jaar oud.\n", leeftijd);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Dit programma creëert output.txt met de regel:
Ik ben 25 jaar oud.
Lees verder
Voor de officiële specificatie, zie de Java PrintWriter API en de Charset-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 ArrayList meesteren: operaties, methoden en best practices
- 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