web-dev-qa-db-fra.com

Comment écrire une nouvelle ligne dans Java FileOutputStream

Je veux écrire une nouvelle ligne en utilisant un FileOutputStream; J'ai essayé les approches suivantes, mais aucune ne fonctionne:

encfileout.write('\n');
encfileout.write("\n".getbytes());
encfileout.write(System.getProperty("line.separator").getBytes());
15
Pavan Patidar

Cela pourrait être un problème de visionneuse ... Essayez d'ouvrir le fichier dans EditPlus ou Notepad ++. Le Bloc-notes Windows peut ne pas reconnaître le saut de ligne d'un autre système d'exploitation. Dans quel programme consultez-vous actuellement le fichier?

10
Teddy

Cela devrait fonctionner. Vous avez probablement oublié d'appeler encfileout.flush().

Cependant, ce n'est pas la façon préférée d'écrire des textes. Vous devez envelopper votre flux de sortie avec PrintWriter et profiter de ses méthodes println():

PrintWriter writer = new PrintWriter(new OutputStreamWriter(encfileout, charset));

Vous pouvez également utiliser FileWriter au lieu de FileOutputStream depuis le début:

FileWriter fw = new FileWriter("myfile");
PrintWriter writer = new PrintWriter(fw);

Maintenant, appelez

writer.println();

Et n'oubliez pas d'appeler flush() et close() lorsque vous avez terminé votre travail.

12
AlexR