Maîtriser la classe PrintStream de Java : print, println et printf expliqués
Maîtriser la classe PrintStream de Java : print, println et printf expliqués
La classe PrintStream, du package java.io, étend OutputStream et est conçue pour produire du texte lisible par l'humain plutôt que des octets bruts.
Comment fonctionne PrintStream
Contrairement aux autres flux, PrintStream convertit les valeurs primitives (int, char, etc.) en texte formaté avant de les écrire. Elle ne lève jamais d'IOException ; les erreurs sont signalées via checkError().
L'auto-flush est une fonctionnalité clé : le flux se vide automatiquement quand :
- un caractère de nouvelle ligne (
\n) est imprimé - la méthode
println()est appelée - un tableau d'octets est écrit
Création d'un PrintStream
Importez la classe :
import java.io.PrintStream;
1. Depuis un OutputStream existant
// Exemple : encapsulation d'un FileOutputStream
FileOutputStream fos = new FileOutputStream("log.txt");
PrintStream ps = new PrintStream(fos, true); // true = autoFlush
Écrit du texte formaté dans log.txt avec auto-flush optionnel.
2. Directement depuis un nom de fichier
PrintStream ps = new PrintStream("log.txt", true);
Le constructeur accepte un booléen pour l'auto-flush. Par défaut, le flux utilise l'encodage de la plateforme.
3. Spécification d'un jeu de caractères
PrintStream ps = new PrintStream("log.txt", true, StandardCharsets.UTF_8);
L'utilisation de Charset permet de choisir UTF-8, UTF-16 ou tout encodage supporté.
Note : Pour plus de détails sur les jeux de caractères, voir API Java Charset.
Méthodes principales de PrintStream
print() et println()
print(Object obj)– affiche la représentation en chaîne deobjprintln(Object obj)– ajoute un séparateur de ligne spécifique à la plateforme
Exemple : Utilisation de System.out
public class Main {
public static void main(String[] args) {
System.out.print("Hello World.");
}
}
System.out est un PrintStream préconfiguré, sa méthode print() est immédiatement disponible.
Exemple : Écriture dans un fichier
import java.io.PrintStream;
public class Main {
public static void main(String[] args) {
try {
PrintStream ps = new PrintStream("output.txt");
ps.print("Ceci est un texte dans le fichier.");
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Le fichier output.txt résultant contient :
Ceci est un texte dans le fichier.
printf()
Affiche du texte formaté avec des spécificateurs de format :
System.out.printf("J'ai %d ans", 25);
%d est remplacé par la valeur entière 25.
Exemple : Utilisation de printf() avec un fichier
import java.io.PrintStream;
public class Main {
public static void main(String[] args) {
try {
PrintStream ps = new PrintStream("output.txt");
int age = 25;
ps.printf("J'ai %d ans.", age);
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Après exécution, output.txt contient :
J'ai 25 ans.
Méthodes supplémentaires de PrintStream
| Méthode | Description |
|---|---|
close() | Ferme le flux et libère les ressources système |
checkError() | Renvoie true si le flux a rencontré une erreur |
append() | Ajoute la séquence de caractères spécifiée au flux |
Pour les détails complets, consultez la documentation officielle Java PrintStream.
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