创建备份模块
在客户端和服务器端前先读取是否有备份文件,如果有就将返回的集合加入到coll集合中。然后删除。
在客户端和服务器端的catch代码块中,添加备份,一旦try块抛出异常,就进行备份。
服务器端异常主要指,入库异常,包括数据库服务未开启,密码错误等等。
客户端异常等只要指,服务器未开启,连接服务器失败,端口占用,连接拒绝等等。
public class BackUpImpl implements BackUp {
Log log = new LogImpl();
public void backUps(String filepath,Object object, boolean append) throws Exception {
File file = new File(filepath);
if (!file.exists()) {
file.createNewFile();
}
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(file, append));
objectOutputStream.writeObject(object);
objectOutputStream.flush();
objectOutputStream.close();
}
public Object load(String filepath,boolean del) throws Exception {
File file = new File(filepath);
if (!file.exists())
return null;
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(file));
Object object = objectInputStream.readObject();
objectInputStream.close();
if (del) {
file.delete();
log.info("删除成功");
}
return object;
}
}
在删除过程中发现一个冷知识,不报错但很闹心,要是甚至没有注意。具体见:https://blog.csdn.net/weixin_44468294/article/details/106859014
最终整个项目测试结果
初始状态
正常运行状态
客户端连接异常状态
出现备份文件
服务器端入库异常状态
客户端备份数据发送成功,文件删除,服务器端数据备份出现
客户端和服务器端都正常,程序回到正常运行状态,备份数据全部成功入库,备份文件删除。