Java 序列化
什么是序列化?
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。
Java 序列化用途
- 把对象的字节序列以文件的形式保存在磁盘上;
- 在网络上传送对象的字节序列,应用在分布式环境中
Java 对象序列化
- 对象序列化输出流
- java.io.ObjectOutputStream writeObject(Object obj)
- 对象反序列化输入流
- java.io.ObjectInputStream readObject()
示例
public class Test
{
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException
{
//序列化对象
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D:/user.obj"));
User user = new User("张三");
out.writeObject(new Date());
out.writeObject(user); //写入customer对象
out.close();
//反序列化对象
ObjectInputStream in = new ObjectInputStream(new FileInputStream("D:/user.obj"));
Date date = (Date) in.readObject();
User user2 = (User) in.readObject(); //读取customer对象
in.close();
LogHelper.log("date = " + date.toString());
LogHelper.log("user2 = " + user2);
}
public static class User implements Serializable
{
private String name;
public User(String name)
{
this.name = name;
}
@Override
public String toString() {
return name;
}
}
}
运行结果
【www.pangugle.com】- date = Thu Aug 06 09:57:07 CST 2020
【www.pangugle.com】- user2 = 张三
注意:
对象写入顺序和读取顺序要一样!