我正在使用java来映射一些巨大的图形。我有一个个性化的类对象,它有这个映射,它由几个hasmap组成,并调用其他个性化的类,这些类也是由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();我要补充的是,这些对象不仅由int和string组成,还由hashmap、列表和其他复杂对象的数组组成。
发布于 2011-06-30 12:24:29
从java docs
FileOutputStream fos = new FileOutputStream("t.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(yourObject);
oos.close();只需确保图中的所有对象都实现了可序列化。
发布于 2011-06-30 12:25:57
Serialize可能就是您想要的。在类中实现serialiable接口,然后使用ObjectOutputStream将对象写入文件。
发布于 2011-06-30 12:54:17
可以,您可以使用OutputStream/InputStream类序列化和保存对象。但是,当您修改类(例如,添加/删除/修改实例变量),然后尝试读取以前保存的文件时,一定要小心。
https://stackoverflow.com/questions/6529872
复制相似问题