java中的序列化和反序列化操作

java中的序列化和反序列化操作

1.序列化ObjectOutputStream

序列化就是将java内存中的数据以二进制的方式保存到文件中

具体代码实现:

		FileOutputStream fos = new FileOutputStream("t.tmp");
		ObjectOutputStream oos = new ObjectOutputStream(fos);
		oos.writeInt(12345);
		oos.writeObject("Today");
		oos.writeObject(new Date());
		oos.close();

2.反序列化ObjectInputStream

反序列化就是讲文件中保存的数据读取转化为java内存中的对象

具体代码实现:

		FileInputStream fis = new FileInputStream("t.tmp");
		ObjectInputStream ois = new ObjectInputStream(fis);
		int i = ois.readInt();
		String today = (String) ois.readObject();
		Date date = (Date) ois.readObject();
		ois.close();

3.说明

在Java中一个对象想要被序列化反序列化,需要实现一个接口 Serializable 。
在这里插入图片描述
当 .class 文件发生变更时, 之前保存的持久化数据默认不能被正常的反序列化

  • 对于增加字段来说,原来的数据其实是能用的。

  • 对于删除、修改字段来说,如果原来的数据涉及到了这部分字段,它是不兼容的。
    设置版本信息
    private static final long serialVersionUID = 1L;

  • 如果不想哪个字段参加序列化和反序列化在定义变量时加入transient关键字
    在这里插入图片描述

©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值