จะเขียนข้อมูลด้วย FileOutputStream อย่างไรโดยไม่ให้ข้อมูลเก่าสูญหาย?


86

หากคุณทำงานกับFileOutputStreamวิธีการทุกครั้งที่คุณเขียนไฟล์ด้วยวิธีการนี้คุณจะสูญเสียข้อมูลเก่าของคุณไป เป็นไปได้ไหมที่จะเขียนไฟล์โดยไม่สูญเสียข้อมูลเก่าของคุณผ่านFileOutputStream?


1
หากคุณสงสัยว่าคุณจะทำสิ่งนี้ด้วยตัวเองได้อย่างไรคุณสามารถอ่าน Javadoc docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Peter Lawrey

[OutputStreamWriter ใช้แทน FileOutputStream] [1] [1]: stackoverflow.com/questions/23320070/…
sourabh

1
@PeterLawrey เพื่อเรียนรู้ด้วยตัวเราเองคนหนึ่งมักจะถามทางอินเทอร์เน็ต และ SO คือผลลัพธ์ที่ 1 ก่อน java doc :-)
Juh_

คำตอบ:


151

ใช้ตัวสร้างที่ใช้ 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);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.