Bagaimana cara menulis data dengan FileOutputStream tanpa kehilangan data lama?

86

Jika Anda bekerja dengan FileOutputStreammetode, setiap kali Anda menulis file melalui metode ini, Anda kehilangan data lama Anda. Apakah mungkin untuk menulis file tanpa kehilangan data lama Anda FileOutputStream?

iSun
sumber
1
Jika Anda bertanya-tanya bagaimana Anda bisa mengerjakan ini sendiri, Anda bisa membaca Javadoc. docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Peter Lawrey
[OutputStreamWriter digunakan sebagai pengganti FileOutputStream] [1] [1]: stackoverflow.com/questions/23320070/…
sourabh
1
@PeterLawrey untuk belajar sendiri, biasanya orang cukup bertanya ke internet. Dan SO adalah hasil pertama sebelum dokumen java :-)
Juh_

Jawaban:

151

Gunakan konstruktor yang membutuhkan a Filedan aboolean

FileOutputStream(File file, boolean append) 

dan setel boolean ke true. Dengan begitu, data yang Anda tulis akan ditambahkan ke akhir file, bukan menimpa apa yang sudah ada di sana.

Tikar
sumber
20

Gunakan konstruktor untuk menambahkan materi ke file:

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

Jadi untuk menambahkan ke file, katakan "abc.txt" use

FileOutputStream fos=new FileOutputStream(new File("abc.txt"),true);
o_o
sumber