我正在使用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();
我将补充说,这些对象不仅包括整数和字符串,还包括哈希映射,列表和其他复杂对象的数组。
答案 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类序列化和保存对象。但是,在修改类时要注意(例如,添加/删除/修改实例变量),然后尝试读取以前保存的文件。