Java/écrire sur un fichier texte
Résolu
Bonjour,
bonsoir!
je veux créer un fichier qui enregistre tous les clients d'une banque après ouverture d'un compte (nom, prénom, code,...) dans un même fichier .
try {
FileWriter fw = new FileWriter ( "listeclient.txt" ) ;
BufferedWriter bw = new BufferedWriter ( fw ) ;
bw.newLine();
PrintWriter pw = new PrintWriter ( bw ) ;
pw. print ( " nom: "+nom+" \nprenom: "+prenom ) ;
pw. close ( ) ;
}
catch ( IOException e ) {
System.out.println ( " Problème à l’écriture du fichier " ) ;
System.exit(0);
}
c' est ce que j ai mis mais à chaque ouverture , au lieu d'ajouter le nouveau client, il le remplace par l'ancien.
comment faire ?
Merci d' avance.
bonsoir!
je veux créer un fichier qui enregistre tous les clients d'une banque après ouverture d'un compte (nom, prénom, code,...) dans un même fichier .
try {
FileWriter fw = new FileWriter ( "listeclient.txt" ) ;
BufferedWriter bw = new BufferedWriter ( fw ) ;
bw.newLine();
PrintWriter pw = new PrintWriter ( bw ) ;
pw. print ( " nom: "+nom+" \nprenom: "+prenom ) ;
pw. close ( ) ;
}
catch ( IOException e ) {
System.out.println ( " Problème à l’écriture du fichier " ) ;
System.exit(0);
}
c' est ce que j ai mis mais à chaque ouverture , au lieu d'ajouter le nouveau client, il le remplace par l'ancien.
comment faire ?
Merci d' avance.
1 réponse
-
ModérateurTu dois ouvrir ton fichier non pas en écriture mais en mode append pour que Java écrive à la suite et non à la place.
FileWriter fw = new FileWriter("xxx.txt", true);
Le "true" signifie que tu vas écrire à la suite (valeur par défaut false quand tu sous-entend cet argument dans le constructeur).
http://download.oracle.com/javase/1.4.2/docs/api/java/io/FileWriter.html
Si tu connais d'avance tous tes clients, tu es sensé écrire un code qui suit cette structure
try{ // Ouvrir le fichier // (en append si tu veux écrire à la suite du fichier s'il existe) FileWriter fw = new FileWriter("xxx.txt", true); // Pour chaque client écrire le client courant ... // Fermer le fichier ... }catch(IOException e){ // On écrit dans le flux d'erreur (et non dans la sortie standard) // un message d'erreur System.err.println("Erreur, écriture impossible\n" + e.printStackTrace()); // Le programme s'est mal fini donc le code de retour du programme // ne devrait pas être 0 qui signifie que tout s'est bien passé exit(1); }
Bonne chance