Как записать данные с помощью FileOutputStream без потери старых данных?

86

Если вы работаете с FileOutputStreamметодами, каждый раз, когда вы пишете файл с помощью этих методов, вы теряете свои старые данные. Можно ли записать файл без потери старых данных через FileOutputStream?

iSun
источник
1
Если вам интересно, как вы могли решить это самостоятельно, вы могли бы прочитать Javadoc. docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Питер Лоури
[OutputStreamWriter используется вместо FileOutputStream] [1] [1]: stackoverflow.com/questions/23320070/…
sourabh
1
@PeterLawrey, чтобы научиться самому, обычно просто спрашивают в Интернете. И SO - это 1-й результат перед java doc :-)
Juh_

Ответы:

150

Используйте конструктор, который принимает a Fileи aboolean

FileOutputStream(File file, boolean append) 

и установите логическое значение true. Таким образом, данные, которые вы пишете, будут добавлены в конец файла, а не перезаписывать то, что уже было.

Мат
источник
20

Используйте конструктор для добавления материала в файл:

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

Итак, чтобы добавить в файл, скажем "abc.txt", используйте

FileOutputStream fos=new FileOutputStream(new File("abc.txt"),true);
о_о
источник