序列化与反序列化

1.序列化的概念:
    序列化就是将对象的状态存储到特定的存储介质中的过程,也就是将对象的状态转换为可保持或传输格式的过程.在序列化的过程中,会将对象的公有成员/私有成员包括类名,转换为字节流,然后再把字节流写入到数据流,存储到存储介质中,这里说的存储介质通常是指文件.
    使用序列化的意义在于java对象序列化后,可以将其转换为字节序列,这些字节序列可以被保存在磁盘上,也可以借助网络进行传输,同时序列化后的对象保存的是二进制状态,这样实现了平台无关性.
    对象序列化的步骤很简单,可以分为两大步:
    1) 创建一个对象输出流(ObjectOutputStream),它可以包装一个其他类型的输出流,如文件输出流FileOutputStream.
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(path));
    2) 通过对象输出流的writeObject(Object object)方法写对象,也就是输出可序列化对象.
    oos.writeObject(Object object);
    注意:java中只有实现了java.io.Serializable接口的对象才能被序列化.   

2..反序列化的概念:
    序列化是将对象的状态信息保存到存储介质中(输出/写),反序列化则是从特定的存储介质中将数据重新构建对象的过程(输入/读).通过反序列化,可以将存储在文件上的对象信息读取,然后重新构建为对象.
    反序列化的步骤大致概括为两步:
    1)创建一个对象输入流(ObjectInputStream),它可以包装一个其他类型的输入流,如文件输入流FileInputSInputStream
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path));
    2)通过对象输入流的readObject()方法读取该对象,方法返回一个Object对象,如果java知道该java对象的类型,则可以将该对象强制转换成其真实类型.
    Object obj = ois.readObject;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值