Jak zapisywać dane za pomocą FileOutputStream bez utraty starych danych?

86

Jeśli pracujesz z FileOutputStreammetodami, za każdym razem, gdy piszesz plik za pomocą tych metod, tracisz stare dane. Czy można zapisać plik bez utraty starych danych przez FileOutputStream?

iSun
źródło
1
Jeśli zastanawiasz się, jak mogłeś sobie z tym poradzić, mogłeś przeczytać Javadoc. docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Peter Lawrey
[OutputStreamWriter jest używany zamiast FileOutputStream] [1] [1]: stackoverflow.com/questions/23320070/ ...
sourabh
1
@PeterLawrey, aby uczyć się samodzielnie, zwykle wystarczy zapytać o internet. A tak to pierwszy wynik przed dokumentem java :-)
Juh_

Odpowiedzi:

150

Użyj konstruktora, który przyjmuje a Filei aboolean

FileOutputStream(File file, boolean append) 

i ustaw wartość logiczną na true. W ten sposób zapisane dane zostaną dołączone na końcu pliku, zamiast nadpisywać to, co już tam było.

Mata
źródło
20

Użyj konstruktora do dołączenia materiału do pliku:

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

Aby dołączyć do pliku, powiedz „abc.txt” użyj

FileOutputStream fos=new FileOutputStream(new File("abc.txt"),true);
o_o
źródło