Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用二进制文件读取、写入和保存序列化对象_Java_File_Serialization_Arraylist_Writing - Fatal编程技术网

Java 使用二进制文件读取、写入和保存序列化对象

Java 使用二进制文件读取、写入和保存序列化对象,java,file,serialization,arraylist,writing,Java,File,Serialization,Arraylist,Writing,我正在进行一个项目,希望用户能够将对象输入ArrayList,关闭程序,再次打开程序,并让用户可以访问第一次运行时的前一个ArrayList 我当前将用户输入对象放入ArrayList,该列表序列化ArrayList并将其保存为.bin文件。当我再次运行程序时,会保存上一个列表,但当我输入新值时,它会覆盖旧列表。我想我要寻找的是一种方法来查看我的.bin文件是否存在,如果存在,则向ArrayList添加新对象,如果不存在,则创建一个新对象。我将在下面添加一些示例代码 在这里,我创建arrayli

我正在进行一个项目,希望用户能够将对象输入ArrayList,关闭程序,再次打开程序,并让用户可以访问第一次运行时的前一个ArrayList

我当前将用户输入对象放入ArrayList,该列表序列化ArrayList并将其保存为.bin文件。当我再次运行程序时,会保存上一个列表,但当我输入新值时,它会覆盖旧列表。我想我要寻找的是一种方法来查看我的.bin文件是否存在,如果存在,则向ArrayList添加新对象,如果不存在,则创建一个新对象。我将在下面添加一些示例代码

在这里,我创建arraylist和一个字符串,为其创建.bin文件

public class Tender {
ArrayList<Alcohol> arraylist = new ArrayList<Alcohol>();
String dataList = "dataList.bin";
}
这里是我尝试从上一次运行中加载序列化文件的地方

private void load() throws FileNotFoundException, IOException, ClassNotFoundException {
    try (ObjectInputStream is = new ObjectInputStream(new FileInputStream(dataList))) {
        ArrayList newAL;
        newAL = (ArrayList) is.readObject();
        System.out.println(newAL);
    }
    Start();
}
}

查看该文件是否存在的方法是尝试打开它,并捕获该文件不存在时发生的FileNotFoundEzception。如果有,请阅读列表;如果不是,请创建一个新文件。

您所称的文件实际上不相关,当然也不需要在标题中。请详细说明-酒精是否实现可序列化?-如何向arraylist添加更多项目,如果可能,请提供更多代码?-您是否能够在反序列化时从列表中检索项目?
private void load() throws FileNotFoundException, IOException, ClassNotFoundException {
    try (ObjectInputStream is = new ObjectInputStream(new FileInputStream(dataList))) {
        ArrayList newAL;
        newAL = (ArrayList) is.readObject();
        System.out.println(newAL);
    }
    Start();
}
}