如何将类对象写入bin文件

问题描述 投票:0回答:3

我正在使用 Java 来绘制一些巨大的图表。我有一个包含此映射的个性化类对象,它由多个哈希图组成,并调用其他也由各种对象组成的个性化类。

我的问题是,每次我运行它进行测试时,大约需要 5 分钟来映射所有内容,然后对于每个节点可能需要 1 到 10 分钟来进行一些计算。每次我必须修复代码上的某些内容时,我都必须经历那个等待时间。

所以我的问题

有什么方法可以将主对象类(由几个原始和非原始对象组成)存储为二进制文件,我可以保存一次并从那时起读取?

解析将如何发生?

我已经开始研究 FileOutputStream/ObjectOutputStream 和 FileInputStream/ObjectInputStream,但我不确定我是否正确理解它们是否适合这种情况。

任何意见和建议将不胜感激。

我附上了我尝试用来保存类对象的代码。

FileOutputStream fos = new FileOutputStream("tbox.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(tboxObject);
oos.flush();
oos.close();

这是第一次运行,之后我将代码交换为:

FileInputStream fis = new FileInputStream("tbox.dat");
ObjectInputStream ois = new ObjectInputStream(fis);
tboxObject savedTboxObject = (tboxObject) ois.readObject();

我要补充一点,这些对象不仅由整数和字符串组成,还由哈希图、列表和其他复杂对象的数组组成。

java file-io inputstream outputstream serializable
3个回答
0
投票

来自 java 文档

    FileOutputStream fos = new FileOutputStream("t.tmp");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(yourObject);
    oos.close();

只需确保图中的所有对象都实现可序列化。


0
投票

是的,您可以使用OutputStream/InputStream类序列化并保存对象。但是,当您修改类(例如添加/删除/修改实例变量)然后尝试读取以前保存的文件时,请务必小心。


-1
投票

Serialize可能就是您想要的。在类中实现可串行接口,然后使用 ObjectOutputStream 将对象写入文件。

© www.soinside.com 2019 - 2024. All rights reserved.