Comment écrire des données avec FileOutputStream sans perdre d'anciennes données?

86

Si vous travaillez avec des FileOutputStreamméthodes, chaque fois que vous écrivez votre fichier avec ces méthodes, vous avez perdu vos anciennes données. Est-il possible d'écrire un fichier sans perdre vos anciennes données via FileOutputStream?

iSun
la source
1
Si vous vous demandez comment vous auriez pu résoudre cela vous-même, vous auriez pu lire le Javadoc. docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Peter Lawrey
[OutputStreamWriter est utilisé à la place de FileOutputStream] [1] [1]: stackoverflow.com/questions/23320070/…
sourabh
1
@PeterLawrey pour apprendre par nous-mêmes, on demande généralement simplement à Internet. Et SO est le 1er résultat avant le java doc :-)
Juh_

Réponses:

150

Utilisez le constructeur qui prend un Fileet unboolean

FileOutputStream(File file, boolean append) 

et définissez la valeur booléenne sur true. De cette façon, les données que vous écrivez seront ajoutées à la fin du fichier, plutôt que d'écraser ce qui s'y trouvait déjà.

Tapis
la source
20

Utilisez le constructeur pour ajouter du matériel au fichier:

FileOutputStream(File file, boolean append)
Creates a file output stream to write to the file represented by the specified File object.

Donc, pour ajouter à un fichier, dites "abc.txt", utilisez

FileOutputStream fos=new FileOutputStream(new File("abc.txt"),true);
o_o
la source