Maîtriser Java FileWriter : Tutoriel complet
Maîtriser Java FileWriter : Tutoriel complet
La classe FileWriter du package java.io est un outil simple pour écrire du texte dans des fichiers. Elle étend OutputStreamWriter et utilise par défaut l'encodage de la plateforme, sauf si vous en définissez un explicitement.
Création d'un FileWriter
Importez la classe :
import java.io.FileWriter;
Plusieurs façons de créer un FileWriter :
- Par nom de fichier
FileWriter output = new FileWriter("output.txt"); - Par objet
FileFile fichier = new File("output.txt"); FileWriter output = new FileWriter(fichier); - Avec jeu de caractères explicite (Java 11+)
FileWriter output = new FileWriter("output.txt", StandardCharsets.UTF_8);
Spécifier un jeu de caractères assure un comportement cohérent across platforms.
Méthodes principales de FileWriter
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 de texte dans un fichier
import java.io.FileWriter;
public class Main {
public static void main(String[] args) {
String donnees = "Ceci sont les données dans le fichier de sortie";
try (FileWriter writer = new FileWriter("output.txt")) {
writer.write(donnees);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Ce programme crée output.txt contenant :
Ceci sont les données dans le fichier de sortie
getEncoding()
getEncoding() révèle le jeu de caractères utilisé par le writer :
import java.io.FileWriter;
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) {
try {
FileWriter writerDefaut = new FileWriter("output.txt");
FileWriter writerUtf8 = new FileWriter("output.txt", StandardCharsets.UTF_8);
System.out.println("Encodage par défaut : " + writerDefaut.getEncoding());
System.out.println("Encodage UTF-8 : " + writerUtf8.getEncoding());
writerDefaut.close();
writerUtf8.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Sortie :
Encodage par défaut : Cp1252
Encodage UTF-8 : UTF-8
Utilisez Charset.forName() ou StandardCharsets pour des noms d'encodage fiables.
Astuce : Consultez la documentation officielle Java FileWriter pour plus de détails.
close()
Fermez toujours un FileWriter (ou utilisez try-with-resources) pour vider les tampons et libérer les ressources. Après fermeture, le writer ne peut plus être réutilisé.
Autres méthodes utiles
| Méthode | Description |
|---|---|
flush() | Écrit immédiatement les données en tampon vers le flux sous-jacent |
append() | Ajoute commodément des caractères ou chaînes au writer |
Pour la liste complète, consultez l'API Java FileWriter officielle.
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