
ObjectOutputStream:


一、需求:将一个对象持久化到硬盘中
业务代码:
//序列化
public static void writeObj() throws IOException, IOException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.object"));
//对象序列化。 被序列化的对象必须实现Serializable接口。
oos.writeObject(new Person("小强",30));
oos.close();
}
}
Person实体类:
public class Person {
private transient String name;
private static int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
运行却发现异常

通过查看方法API的异常:找到该异常

得知实体类需要实现接口 Serializable

实现接口后运行正常,成功写入
![]()
ObjectInputStream:反序列化

//反序列化
public static void readObj() throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.object"));
//对象的反序列化。
Person p = (Person)ois.readObject();
System.out.println(p.getName()+":"+p.getAge());
ois.close();
}

本文详细介绍了如何使用Java的ObjectOutputStream和ObjectInputStream进行对象的序列化和反序列化操作,包括实现Serializable接口的重要性,以及序列化和反序列化过程中可能出现的异常处理。
1783

被折叠的 条评论
为什么被折叠?



