开发者学堂课程【Java 高级编程:序列化与反序列化处理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/20/detail/346
序列化与反序列化处理
有了序列化的支持类之后如果想要实现序列化与反序列化的操作则可以利用以下两个类完成:
类名称 |
序列化:ObjectOutputStream |
反序列化:ObjectInputStream |
类定义 |
|
|
构造方法 |
|
|
操作方法 |
|
|
范例:实现序列化与反序列化
第一个操作过程:如图输入
private static final File SAVE_FILE = new File("D:"+ File.separator +"mldn.person")
Objectoutputstream oos = new objectoutputstream(new Eileoutputstream(
S
A
V
E_FILE)
public static void saveobject(Object obj) throws lexception { Objectoutputstream oos = new ObjectOutputStream(new FileOutputStream(SAVE_FILE));
oos.writeObject(obj);//序列化
oos.close();
public static Object loadObject() throws Exception {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(SAVE_FILE));
Object obj = ois.readObject();//反序列化
ois.close();
return obj ;
代码完成后,观察后,图中位置跟上saveObject(new Person(“小喷涕”,78))
执行后有个文件
打开得
打开代码继续输入:System.out.printIn(LoadObject());
再次执行得
这就是反序列化。
在 Java 中的对象序列化与反序列化必须使用内部提供的对象操作流,因为这里面牵扯到二进制数据的格式,所以不能够自义处理。另外,如果要想实现一组对象的序列化,则可以使用对象数组完成。
在很多的实际项目开发过程之中,开发者很少能够见到 ObjectOutputStream、 ObjectInput Stream 直接操作,因为会有一些容器帮助开发者自动实现。