当前位置: 首页 > 知识库问答 >
问题:

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

上官景铄
2023-03-14

我正在做一个项目,我希望用户能够将对象输入到ArrayList中,关闭程序,并能够再次打开程序,并且用户可以访问以前的ArrayList(从第一次运行开始)。

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

public class Tender {
ArrayList<Alcohol> arraylist = new ArrayList<Alcohol>();
String dataList = "dataList.bin";
}

下面是我序列化ArrayList的地方。

    private void Serialize() throws IOException {
         try (ObjectOutputStream os = new ObjectOutputStream(new  FileOutputStream(dataList))) {
             os.writeObject(arraylist);
             os.close();

             System.out.println("done writing");
         }
     }

这里是我试图从上次运行中加载回序列化文件的地方。

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();
}
}

共有1个答案

万俟招
2023-03-14

查看文件是否存在的方法是尝试打开它,并捕获FileNotfoundezception。如果它在那里,阅读清单;如果不是,创建一个新的。

 类似资料:
  • 问题内容: 我必须报价, 1.将帐户保存到二进制(序列化)文件中。2.从二进制(序列化)文件加载(重新创建)帐户。 因此,首先,我正在查找确切的例子,而我却迷失了自己,在同样的情况下,人们提到xml,在我的脑海中,我认为它的意思像01010011000(二进制),而当我查看其他代码时,它看起来就像是正常的文本文件保存。 他到底是什么意思,有人可以举一个例子,或者给我一个更好地阐明这一点的网站吗?一

  • Python 不仅支持文本文件的读写,也支持二进制文件的读写,比如图片,声音文件等。 读取二进制文件 读取二进制文件使用 ‘rb’ 模式。 这里以图片为例: with open('test.png', 'rb') as f: image_data = f.read() # image_data 是字节字符串格式的,而不是文本字符串 这里需要注意的是,在读取二进制数据时,返回的数据是字

  • 问题内容: 我将多个对象写入文件,然后在代码的另一部分中检索它们。我的代码没有错误,但是无法正常工作。您能帮我发现我的代码有什么问题吗?我从不同的网站阅读了不同的代码,但是没有一个对我有用! 这是将对象写入文件的代码:MyClassList是一个数组列表,其中包含我的类的对象(必须将其写入文件)。 我向输出流的构造函数添加了“ true”,因为我想将每个对象都添加到文件的末尾。那是对的吗? 这是我

  • BinaryReader和BinaryWriter类用于读取和写入二进制文件。 BinaryReader类 BinaryReader类用于从文件中读取二进制数据。 通过将FileStream对象传递给其构造函数来创建BinaryReader对象。 下表显示了BinaryReader类的一些常用methods 。 Sr.No. 方法名称和目的 1 Public Overridable Sub Clo

  • BinaryReader和BinaryWriter类用于读取和写入二进制文件。 BinaryReader类 BinaryReader类用于从文件中读取二进制数据。 通过将FileStream对象传递给其构造函数来创建BinaryReader对象。 下表描述了BinaryReader类的常用methods 。 Sr.No. 方法和描述 1 public override void Close() 它

  • 问题内容: 我有一个较长的无符号整数文件(每个64位,0.47GB文件),需要读取并存储在数组中。经过一番思考之后,由于Java中的所有内容都已签名(请纠正我,请纠正我),因此我长时间使用了该类型,我想不出更好的选择了。无论如何,仅需对数组进行排序,因此原始数字的精确值并不是最重要的。我们应该测量排序算法的效率,仅此而已。但是,当我实际要读取文件时(在下面的代码中),我遇到了砖墙。 它会一直持续下