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


86

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


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);
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.