Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menambahkan Objek pada Fail Objek Sedia Ada di Java?
Melampirkan pada Fail Objek Sedia Ada
Dalam Java, ObjectOutputStream membenarkan anda untuk bersiri dan menulis objek pada fail. Walau bagaimanapun, secara lalai, strim ini tidak menyokong penambahan objek baharu pada fail sedia ada. Topik ini meneroka penyelesaian untuk menambahkan data pada ObjectOutputStream sedia ada.
Untuk menambah pada fail sedia ada, kaedah writeStreamHeader() ObjectOutputStream perlu ditindih untuk mengelakkan daripada menulis pengepala. Berikut ialah kelas AppendingObjectOutputStream tersuai yang melakukan perkara ini:
public class AppendingObjectOutputStream extends ObjectOutputStream { public AppendingObjectOutputStream(OutputStream out) throws IOException { super(out); } @Override protected void writeStreamHeader() throws IOException { // do not write a header, but reset: reset(); } }
Untuk menggunakan kelas ini untuk menambahkan objek pada fail sedia ada, semak sama ada fail itu wujud sebelum mencipta strim:
FileOutputStream fos = null; ObjectOutputStream out = null; File file = new File(preferences.getAppDataLocation() + "history"); if (file.exists()) { // Append to existing file fos = new FileOutputStream(file, true); out = new AppendingObjectOutputStream(fos); } else { // Create new file with header fos = new FileOutputStream(file); out = new ObjectOutputStream(fos); } // Append objects to the file out.writeObject(new Stuff(stuff)); out.close();
Untuk membaca objek yang dilampirkan, gunakan ObjectInputStream seperti biasa. Pengecualian StreamCorruptedException tidak akan berlaku lagi apabila membaca objek daripada fail.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambahkan Objek pada Fail Objek Sedia Ada di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!