对序列化技术异常的处理
我的需求如下:
- 不知道是否已经创建了存储 序列化的文件,就需要进行反序列化操作
- 不知道已经存在的文件当中是否已经 存储了经过序列化的对象,就需要进行反序列化操作
我遇到的异常如下:
异常名称 | 异常原因 |
---|---|
FileNotFoundException | 没有找到目标文件,文件还未进行创建 |
EOFException | 目标文件当中无序列化存储,还未进行过序列化 |
我使用的是try-catch处理异常,代码如下:
public class Demo14 {
public static void main(String[] args) throws IOException {
try{
//反序列化--使用ObjectInputStream类输入
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d://book.txt"));
Book o = (Book) ois.readObject();
System.out.println(o.getName());
}catch(FileNotFoundException fileNotFoundException){
System.out.println("未找到文件");
}catch(EOFException eOFException){
System.out.println("文件未存储有序列化对象");
}
}
static class Book implements Serializable{
private String name;
private String info;
public Book(String name, String info) {
this.name = name;
this.info = info;
}
}
}
对序列化技术不了解的兄弟可以看一看我的IO这一篇的学习总结,里面有专门讲到序列化技术。并且:序列化技术不推荐使用,之后Java官方很可能会移除序列化技术!
希望对你有所帮助!