序列化与反序列化操作

#序列化与反序列化是干嘛用的?
序列化: 把Java对象转换为字节序列的过程。
反序列化:把字节序列恢复为Java对象的过程。

#我们为什么要用?
首先 将数据以对象的形式进行储存是为了方便人来操作与观察,但是计算机不吃这一套,1就是1,
0就是0。所以我们要将我们的看得懂的数据转换成计算机看得懂的数据进行传输数据。
而反序列化就是将这一操作反转,让计算机看得懂的数据转换成我们看的懂的数据。

#什么时候用?
①将对象存储到计算机硬盘中。
②将对象通过传输给其他计算机。

#怎么用?
第一步:
首先我们需要实现一个接口,来给这个对象的类打上标记,使其可序列化。
具体的操作就是,在你要序列化的那个对象类后面implements下面两个接口之一就行了。
①实现Serializable接口。
②实现Externalizable接口。

这两个接口的区别是:
实现Serializable接口可以序列化这个类里的所有属性。
而实现Externalizable接口可以指定序列化哪些属性。

第二步:
你需要创建流。
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(“文件目录”))
像这样创建一个输出流,你就可以通过.writeObject()方法来将对象写入文件。

相应的
ObjectInputStream ois=new ObjectInputStream(new FileInputStream(“文件目录”))
创建一个输入流,再使用.readObject()方法就能将文件中的序列化数据转换成对象。

如果你选择实现了Externalizable接口,那么你还需要在对象的类中实现
writeExternal(ObjectOuput out) 和 readExternal(ObjectInput in)这两个方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值