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?


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à.


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);
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.