有没有一种方法可以防止ObjectOutputStreams被关闭的JFrame截断?

时间:2020-06-24 21:17:49

标签: java eof truncation

我想做的是防止保存在文件中的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中断了。

请让我知道解决此问题是否需要更多信息。

谢谢

0 个答案:

没有答案