包含不同对象的用户选项的文件

时间:2017-04-18 11:58:39

标签: java

我在Java(动物收容所)中创建一个简单的应用程序,它允许您将动物添加到列表中,编辑空闲位置,在空闲空间结束时发送电子邮件,并在程序关闭和加载后保存所有更改它被打开了。

然而,动物列表(ArrayList)保存在一个文件中,第二个中的空闲位置列表,第三个中的电子邮件地址(字符串)等等... 我曾尝试将需要保存的对象放在一个集合(ArrayList)中,但此文件无法正确加载。

如何在txt文件中保存和读取不同类型的任何想法?

我的导入/导出类示例:

 void autoSave() {

    try {
        FileOutputStream fout = new FileOutputStream(path);
        ObjectOutputStream oos = new ObjectOutputStream(fout);
        oos.writeObject(AddAnimalScene.listOfAnimals);
        oos.close();

        FileOutputStream fout1 = new FileOutputStream(path1);
        ObjectOutputStream oos1 = new ObjectOutputStream(fout1);
        oos1.writeObject(EditFreeSpaceScene.places);
        oos1.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}


void autoLoad() {
    try {
        ObjectInputStream in = new ObjectInputStream(new FileInputStream(path));
        ArrayList<Animal> LoadedAnimalList = (ArrayList<Animal>) in.readObject();
        in.close();
        AddAnimalScene.listOfAnimals = LoadedAnimalList;

        ObjectInputStream in1 = new ObjectInputStream(new FileInputStream(path1));
        Integer LoadedPlaces = (Integer) in1.readObject();
        in1.close();
        EditFreeSpaceScene.places = LoadedPlaces;

    } catch (IOException | ClassNotFoundException e) {
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:0)

提示:始终阅读Javadoc,特别是作为初学者。一开始可能会遇到挑战,但以后会有所回报。在我看来,查阅官方文档始终是清除任何问题的正确方法。

来自ObjectOutputStream Javadoc

  

只有支持java.io.Serializable接口的对象才能写入流。

您的Section#thumbnails .thumb a[title="Yorokobu"]{ pointer-events: none !important; display: block !important; cursor: default; } 课程应实施Serializable界面。

另一方面,如果您想明确指定一个字段被序列化,您可以使用Animal修饰符。