标签:
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