Wie schreibe ich Daten mit FileOutputStream, ohne alte Daten zu verlieren?

85

Wenn Sie mit FileOutputStreamMethoden arbeiten, gehen jedes Mal, wenn Sie Ihre Datei mit diesen Methoden schreiben, Ihre alten Daten verloren. Ist es möglich, Dateien zu schreiben, ohne Ihre alten Daten über zu verlieren FileOutputStream?

iSun
quelle
1
Wenn Sie sich fragen, wie Sie das für sich selbst hätten herausfinden können, hätten Sie den Javadoc lesen können. docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Peter Lawrey
[OutputStreamWriter wird anstelle von FileOutputStream verwendet] [1] [1]: stackoverflow.com/questions/23320070/…
sourabh
1
@PeterLawrey, um selbst zu lernen, fragt man normalerweise einfach im Internet. Und SO ist das 1. Ergebnis vor dem Java-Dokument :-)
Juh_

Antworten:

149

Verwenden Sie den Konstruktor a Fileund aboolean

FileOutputStream(File file, boolean append) 

und setzen Sie den Booleschen Wert auf true. Auf diese Weise werden die von Ihnen geschriebenen Daten an das Ende der Datei angehängt, anstatt das zu überschreiben, was bereits vorhanden war.

Matte
quelle
19

Verwenden Sie den Konstruktor, um Material an die Datei anzuhängen:

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

Um an eine Datei anzuhängen, sagen Sie "abc.txt"

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