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 = 张三

注意:

对象写入顺序和读取顺序要一样!