第一次见到芳神用对象流来存储已经执行过的信息,感觉这样的操作真的很神奇,通过对象流可以实现动态对象的保存。
例如 扫雷程序执行到了一半,你突然不想扫雷了,然后将此对象JPanel对象(既扫雷面板)用对象流存储到文件后,然后你还可以用对象流来进行读入操作。
在实现扫雷的过程中突然发现自己实现对象流中读取的操作后,然后面板就没有响应了,考虑到要开发局域网对战的功能就打算把保存进度这一模块给删掉。
但是实现的代码就放到这里了。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
上面是要包含的类
if(e.getSource().equals(win.menuBar.backUp)){ //保存框的响应
File file=new File("save.txt");
try{
if(file.exists()==false)file.createNewFile();
else {file.delete();file.createNewFile();}
FileOutputStream fileOut=new FileOutputStream(file);
ObjectOutputStream out=new ObjectOutputStream(fileOut);
out.writeObject(win.mainArea);
out.close();
}
catch(Exception ss){
System.out.println(ss.toString());
JOptionPane.showMessageDialog(win, "保存出错","警告框",JOptionPane.WARNING_MESSAGE);
}
}
if(e.getSource().equals(win.menuBar.recover)){ //读取框的响应
File file=new File("save.txt");
try{
if(file.exists()==false)throw new Exception();
FileInputStream fileIn=new FileInputStream(file);
ObjectInputStream in=new ObjectInputStream(fileIn);
win.setMenuArea((MenuArea)in.readObject());
in.close();
}
catch(Exception ss){
JOptionPane.showMessageDialog(win, "读取出错","警告框",JOptionPane.WARNING_MESSAGE);
}
}
作不能恰当是融合时间计数的功能(又重新开了一个进程来执行的操作),结果读取存档后不能进行正常的响应操作。