Java BufferedWriter : E/S de caractères efficace expliquée
Java BufferedWriter : E/S de caractères efficace expliquée
La classe BufferedWriter du package java.io encapsule un autre Writer pour fournir une sortie de caractères efficace. En mettant en tampon les données en mémoire, elle réduit les coûteuses opérations d'E/S disque.
Comment fonctionne BufferedWriter
La classe maintient un tampon interne de 8 192 caractères (taille par défaut). Quand vous écrivez, les caractères sont d'abord stockés dans ce tampon. Une fois le tampon plein ou le writer fermé, le contenu est vidé vers le flux sous-jacent.
Cette stratégie minimise le nombre d'écritures disque, rendant la sortie de caractères notablement plus rapide.
Création d'un BufferedWriter
Importez la classe et créez un BufferedWriter en encapsulant un FileWriter (ou tout autre Writer) :
FileWriter fichier = new FileWriter("output.txt");
BufferedWriter tampon = new BufferedWriter(fichier);
Le tampon par défaut est de 8 192 caractères, mais vous pouvez spécifier une taille personnalisée :
BufferedWriter tampon = new BufferedWriter(fichier, 16384); // tampon 16 Ko
Méthodes de BufferedWriter
write()
write(int c)– écrit un seul caractèrewrite(char[] cbuf)– écrit un tableau de caractèreswrite(String str)– écrit une chaîne
Exemple : Écriture dans un fichier
import java.io.FileWriter;
import java.io.BufferedWriter;
public class Main {
public static void main(String[] args) {
String donnees = "Ceci sont les données dans le fichier de sortie";
try {
FileWriter fichier = new FileWriter("output.txt");
BufferedWriter out = new BufferedWriter(fichier);
out.write(donnees);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Le fichier output.txt résultant contient la chaîne spécifiée.
flush()
Force l'écriture immédiate des données en tampon vers le flux sous-jacent.
out.flush(); // écrit les caractères en tampon vers le fichier
close()
Ferme le writer et libère les ressources système. Après close(), le writer ne peut plus être utilisé.
Autres méthodes utiles
| Méthode | Description |
|---|---|
newLine() | Insère le séparateur de ligne spécifique à la plateforme |
append(char c) | Ajoute un seul caractère |
append(CharSequence csq) | Ajoute une séquence de caractères |
Pour l'API complète, référez-vous à la documentation officielle Java BufferedWriter.
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 Java BufferedReader : Gestion efficace des flux de caractères
- Maîtriser les génériques Java : Construire du code réutilisable et type-safe