Java中关于存储对象流的代码

来源:互联网 发布:php企业源码 编辑:程序博客网 时间:2024/05/16 14:11

第一次见到芳神用对象流来存储已经执行过的信息,感觉这样的操作真的很神奇,通过对象流可以实现动态对象的保存。

例如 扫雷程序执行到了一半,你突然不想扫雷了,然后将此对象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);}}

作不能恰当是融合时间计数的功能(又重新开了一个进程来执行的操作),结果读取存档后不能进行正常的响应操作。