如何将类对象写入bin文件

时间:2011-06-30 04:16:08

标签: java file-io inputstream outputstream serializable


我正在使用java来绘制一些巨大的图形。我有一个具有此地图的个性化类对象,它由多个hasmaps组成,并调用其他个性化类,这些类也由varios对象组成。

我的问题是,每次我运行它来进行测试时,需要大约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();

我将补充说,这些对象不仅包括整数和字符串,还包括哈希映射,列表和其他复杂对象的数组。

3 个答案:

答案 0 :(得分:0)

来自java docs

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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