首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将类对象写入bin文件

如何将类对象写入bin文件
EN

Stack Overflow用户
提问于 2011-06-30 12:16:08
回答 3查看 12K关注 0票数 3

我正在使用java来映射一些巨大的图形。我有一个个性化的类对象,它有这个映射,它由几个hasmap组成,并调用其他个性化的类,这些类也是由varios对象组成的。

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

所以我的问题是

有没有办法将主对象类(由几个基元和非基元对象组成)存储为二进制文件,我可以保存一次,然后读取?

解析是如何进行的?

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

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

更新:我附加了我试图用来保存类对象的代码。

代码语言:javascript
复制
FileOutputStream fos = new FileOutputStream("tbox.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(tboxObject);
oos.flush();
oos.close();

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

代码语言:javascript
复制
FileInputStream fis = new FileInputStream("tbox.dat");
ObjectInputStream ois = new ObjectInputStream(fis);
tboxObject savedTboxObject = (tboxObject) ois.readObject();

我要补充的是,这些对象不仅由int和string组成,还由hashmap、列表和其他复杂对象的数组组成。

EN

回答 3

Stack Overflow用户

发布于 2011-06-30 12:24:29

java docs

代码语言:javascript
复制
    FileOutputStream fos = new FileOutputStream("t.tmp");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(yourObject);
    oos.close();

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

票数 0
EN

Stack Overflow用户

发布于 2011-06-30 12:25:57

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

票数 0
EN

Stack Overflow用户

发布于 2011-06-30 12:54:17

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6529872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档