黑马程序员技术交流社区

标题: 序列化和反序列化的问题 [打印本页]

作者: 李易烜    时间: 2013-3-12 16:20
标题: 序列化和反序列化的问题
本帖最后由 李易烜 于 2013-3-12 22:52 编辑

序列化的作用?怎么做才最好?
反序列化的作用?
最好可以举例。
作者: 刘海浩    时间: 2013-3-12 22:14
对象流可以将Java 对象转换成二进制写入磁盘,这个过程通常叫做序列化,并且还可以从磁盘读出完整的Java 对象,而这个过程叫做反序列化.序列化是为了解决在对对象流进行读写操作时所引发的问题,最主要的用处就是在传递,和保存对象(object)的时候,保证对象的完整性和可传递性。
  1. import java.io.Serializable;

  2. public class User implements Serializable
  3. {
  4.         String name;

  5.         User(String name){
  6.                 this.name = name;
  7.         }
  8.        
  9.         public String toString(){
  10.                 return "User[name="+name+"]";
  11.         }
  12. }
复制代码
  1. import java.io.*;
  2. public class ObjectOutputStreamTest01
  3. {
  4.         public static void main(String[] args) throws Exception{
  5.                
  6.                 //1.创建java对象
  7.                 User u1 = new User("刘德华");

  8.                 //2.创建输出流(序列化流) (JVM中的java对象状态保存到硬盘中.)
  9.                 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("temp06"));
  10.                
  11.                 //3.写
  12.                 oos.writeObject(u1);

  13.                 //刷新
  14.                 oos.flush();

  15.                 //关闭
  16.                 oos.close();
  17.         }
  18. }
复制代码
  1. import java.io.*;

  2. public class ObjectInputStreamTest01
  3. {
  4.         public static void main(String[] args) throws Exception{
  5.                
  6.                 //1.创建反序列化流
  7.                 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("temp06"));
  8.                
  9.                 //2.反序列化
  10.                 Object o = ois.readObject();

  11.                 System.out.println(o); //User[name=刘德华]

  12.                 //关闭
  13.                 ois.close();
  14.         }
  15. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2