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

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


person iSun    schedule 17.12.2011    source источник
comment
Если вам интересно, как вы могли решить это самостоятельно, вы могли бы прочитать Javadoc. docs.oracle.com/javase/7/docs/ API/java/io/FileOutputStream.html   -  person Peter Lawrey    schedule 17.12.2011
comment
[OutputStreamWriter используется вместо FileOutputStream][1] [1]: stackoverflow.com/questions/23320070/   -  person sourabh    schedule 27.04.2014
comment
@PeterLawrey, чтобы научиться самостоятельно, обычно просто спрашивают в Интернете. И SO - это первый результат перед java-документом :-)   -  person Juh_    schedule 31.12.2017


Ответы (2)


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

FileOutputStream(File file, boolean append) 

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

person Mat    schedule 17.12.2011

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

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);
person o_o    schedule 17.12.2011