【发布时间】:2017-04-30 11:41:03
【问题描述】:
所以,我试图在用户关闭应用程序时保存应用程序的当前状态,当应用程序重新打开时,数据将从序列化文件中读取,并保存在驱动器上。
我必须以某种方式检查目录中是否有这样的文件,如果有,请从中读取,如果没有(FileNotFOundException),应用程序通常应该在没有任何数据的情况下启动,然后保存它(我会在这种情况下,请手动删除文件)。
这是我定义的监听器类(现在我已经删除了文件,它会抛出 filenotfound):
class ShraniPovrni implements WindowListener {
private ArrayList<TovornaLadja> seznamLadij;
public ShraniPovrni(ArrayList<TovornaLadja> seznamLadij) {
this.seznamLadij = seznamLadij;
}
@Override
public void windowClosing(WindowEvent e) {
try {
ObjectOutputStream oos = new ObjectOutputStream(new GZIPOutputStream(new FileOutputStream("Janezek.ser")));
oos.writeObject(seznamLadij);
oos.flush();
oos.close();
} catch (Exception ex) {
System.out.println("Tezave " + ex.toString() + ex.getMessage());
ex.printStackTrace();
}
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent e) {
try {
ObjectInputStream oos = new ObjectInputStream(new GZIPInputStream(new FileInputStream("Janezek.ser")));
seznamLadij = (ArrayList<TovornaLadja>) oos.readObject();
oos.close();
System.out.println(seznamLadij);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
【问题讨论】:
-
那么你到底想问什么?
-
我如何检查文件是否退出然后从中读取,如果它没有我如何让它不捕获异常而只是忽略它并“重新开始”然后创建新文件
标签: java file exception stream listener