Як записати дані за допомогою 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, щоб навчитися самому, зазвичай просто запитують Інтернет. І ТО - це перший результат до Java-документа :-)
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.