码迷,mamicode.com
首页 > 其他好文 > 详细

序列化与反序列化

时间:2016-08-17 01:28:25      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

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;

序列化与反序列化

标签:

原文地址:http://www.cnblogs.com/wkj888888/p/5778285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!