Maîtriser Java PrintWriter : Fonctionnalités, méthodes et exemples pratiques
Maîtriser Java PrintWriter : Fonctionnalités, méthodes et exemples pratiques
La classe PrintWriter, partie de java.io, est conçue pour écrire des données caractères dans des fichiers texte ou autres flux de sortie. Elle étend Writer et offre des méthodes de formatage pratiques.
Contrairement aux autres writers, PrintWriter convertit automatiquement les types primitifs (int, float, char, etc.) en texte avant écriture. Elle ne lève jamais d'IOException ; les erreurs sont détectées via checkError().
L'auto-flush est une fonctionnalité clé : si activé, chaque appel à println() ou printf() force le vidage du tampon vers le flux sous-jacent.
Comment fonctionne PrintWriter
PrintWriter écrit du texte formaté vers un Writer ou OutputStream sous-jacent. Son constructeur accepte un drapeau autoFlush et, optionnellement, un Charset pour l'encodage.
Création d'un PrintWriter
Importez la classe :
import java.io.PrintWriter;
1. Depuis un Writer existant
FileWriter fichier = new FileWriter("output.txt");
PrintWriter out = new PrintWriter(fichier, true); // autoFlush = true
2. Depuis un OutputStream
FileOutputStream fos = new FileOutputStream("output.txt");
PrintWriter out = new PrintWriter(fos, true);
3. Directement depuis un nom de fichier
PrintWriter out = new PrintWriter("output.txt", true);
4. Avec encodage de caractères
import java.nio.charset.Charset;
PrintWriter out = new PrintWriter("output.txt", true, Charset.forName("UTF-8"));
L'utilisation d'un Charset assure l'écriture avec l'encodage souhaité.
Méthodes principales
print() et println()
print(obj)– écrit la représentation en chaîne deobjsans nouvelle ligneprintln(obj)– écrit la chaîne et ajoute le séparateur de ligne système
printf()
La famille printf supporte la syntaxe Formatter de Java :
out.printf("J'ai %d ans.", 25);
Autres méthodes utiles
| Méthode | Description |
|---|---|
close() | Ferme le flux et libère les ressources |
checkError() | Renvoie true si une erreur d'écriture s'est produite |
append(CharSequence) | Ajoute la séquence donnée au writer |
Exemple pratique
Programme complet écrivant du texte formaté dans output.txt avec 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 age = 25;
out.printf("J'ai %d ans.\n", age);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ce programme crée output.txt avec la ligne :
J'ai 25 ans.
Pour aller plus loin
Consultez la API Java PrintWriter officielle et la documentation Charset.
Java
- Comprendre le mot-clé final en Java : variables, méthodes et classes
- L'opérateur instanceof en Java : guide complet
- Comprendre les classes imbriquées statiques en Java : utilisation, différences et exemples
- Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
- Le pattern Singleton en Java expliqué : implémentation et utilisation sûre
- Maîtriser la réflexion Java : inspection des classes, méthodes et champs à l'exécution
- Maîtriser Java ObjectOutputStream : Sérialisation, méthodes et exemples pratiques
- Maîtriser les génériques Java : Construire du code réutilisable et type-safe
- Maîtriser les opérations sur les fichiers Java avec java.io – Création, lecture, écriture et suppression