【18期】Java序列化与反序列化三连问:是什么?为什么要?如何做?
来自:网络
Java序列化与反序列化是什么?
序列化:对象序列化的主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地文件中。核心作用是对象状态的保存与重建。
反序列化:客户端从文件中或网络上获得序列化后的对象字节流,根据字节流中所保存的对象状态及描述信息,通过反序列化重建对象。
为什么需要序列化与反序列化?
如何实现Java序列化与反序列化
import java.io.Serializable;
public class Person implements Serializable { //本类可以序列化
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() {
return "姓名:" + this.name + ",年龄" + this.age;
}
}
package org.lxh.SerDemo;
import java.io.File;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class ObjectOutputStreamDemo { //序列化
public static void main(String[] args) throws Exception {
//序列化后生成指定文件路径
File file = new File("D:" + File.separator + "person.ser");
ObjectOutputStream oos = null;
//装饰流(流)
oos = new ObjectOutputStream(new FileOutputStream(file));
//实例化类
Person per = new Person("张三", 30);
oos.writeObject(per); //把类对象序列化
oos.close();
}
}
相关文章