使用ObjectOutputStream自动覆盖对象

时间:2018-06-07 00:33:43

标签: java object

当我保存第二个对象,并从文件中删除第一个对象时,我该如何解决?

public void guardar(){ 
    try {
        ObjectOutputStream oos = new ObjectOutputStream(new 
        FileOutputStream("Datos.obj"));
        Object O[] = new Object[5];
        O[0] = getRfc();
        O[1] = getNombre();
        O[2] = getEdad();
        O[3] = getPuesto();
        O[4] = getSalario();
        oos.writeObject(O);
        oos.flush();
        oos.close();
    } catch (FileNotFoundException ex) {
        Logger.getLogger(datos.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(datos.class.getName()).log(Level.SEVERE, null, ex);
    }   
}

如果有人可以帮助我,请提前致谢。

1 个答案:

答案 0 :(得分:0)

您需要使用第一个对象数组读取文件。然后创建一个java.util.ArrayList对象数组,首先将第一个对象数组保存到其中,然后将第二个对象保存到其中,然后序列化包含这两个对象数组的列表。

如果您有第三个要序列化的对象,则必须再次从文件中读取java.util.ArrayList并将第三个对象附加到其上,依此类推。

请注意:即使您只有一个对象数组,最好先将第一个对象数组保存到java.util.ArrayList