FileWriter vs OutputStreamWriter

Fermé
sarounette - 10 mai 2012 à 09:48
 bepoc - 12 mai 2012 à 21:55
Bonjour tout le monde ,

j'ai trouvé que pour rajouter une ligne à un fichier sans écraser la premeire ligne je dois utiliser FileWriter et ca a marché trés bien :
try {
FileWriter fw = new FileWriter(new OutputStreamWriter(new FileOutputStream(f), "UTF-8"));
BufferedWriter bw = new BufferedWriter (fw);
PrintWriter fichierSortie = new PrintWriter (bw);

fichierSortie.println (phCbl.getText());
fichierSortie.close();

}catch(Exception ee ){ System.err.println();
ee.printStackTrace();}
CEPENDANT le FileWriter ne supporte pas l'encodage UTF8 , quand j'ai refait la recherche j'ai trouvé que pour écrire dans un fichier en utilisant l'encodage UTF8 il faut utiliser OutputStreamReader comme suit :

Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("outfilename"), "UTF-8"));
try {
out.write(aString);
} finally {
out.close();
}

CEPENDANT OutputStreamReader ne me permet pas de rajouter une ligne elle ecrase toujours la ligne déjà existante dans le fichier .

comment je fais ??????????? je suis désespérée .
A voir également:

1 réponse

voici un bout de code qui devrait fonctionner :

FileOutputStream f = new FileOutputStream(new File("nom_fichier"), true); //true pour le mode append
String s = "ligne à ajouter";
f.append(s.getBytes("UTF-8");
0

Discussions similaires