【发布时间】:2011-09-25 16:05:55
【问题描述】:
我正在使用 java 来映射一些巨大的图形。我有一个具有此映射的个性化类对象,它由几个 hasmap 组成,并调用其他也由 varios 对象组成的个性化类。
我的问题是,每次我运行它来进行测试时,大约需要 5 分钟来映射所有内容,然后对于每个节点,可能需要 1 到 10 分钟来进行一些计算。每次我必须修复代码上的某些问题时,我都必须经历这段等待时间。
所以我的问题
有什么方法可以将主要对象类(由几个原始对象和非原始对象组成)存储为二进制文件,我可以保存一次并从那时起读取?
解析将如何进行?
我已经开始研究 FileOutputStream/ObjectOutputStream 和 FileInputStream/ObjectInputStream,但我不确定我是否正确理解它们是否适合这种情况。
任何 cmets 和建议将不胜感激。
更新:我附上了我试图用来保存类对象的代码。
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();
我要补充的是,这些对象不仅由整数和字符串组成,还由哈希图、列表和其他复杂对象的数组组成。
【问题讨论】:
-
嗯,代码看起来不错。很难说可能是什么问题。您是否在 catch 块中吞下了任何异常?
标签: java file-io inputstream outputstream serializable