我想做的是防止保存在文件中的OOS被截断。我假设这是我无法在任意时间加载数据的原因。考虑到存储在输出文件中的数据似乎不完整,这也是一个合理的结论。
我尝试在JFrame关闭后立即保存数据,但这没有用。
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
new Data().save(UnitPacer.this);
}
});
这是save方法(保存在上面的Data类中):
public static void save(Serializable data, String filename) throws IOException {
try (ObjectOutputStream oos = new
ObjectOutputStream(Files.newOutputStream(Paths.get(filename)))) {
oos.writeObject(data);
}
}
此数据也保存在时钟上,每1000毫秒或1秒调用一次相同的保存方法。因此,因此,我假设它被截断的原因是它被保存期间退出的JFrame中断了。
请让我知道解决此问题是否需要更多信息。
谢谢