黑马程序员技术交流社区

标题: java 序列化与反序列化 [打印本页]

作者: marcojam    时间: 2015-8-9 21:15
标题: java 序列化与反序列化

  1. package objectinputStream;

  2. import java.io.Serializable;
  3. //Serializable接口没有实现方法,此接口为标签接口,使类具有序列化功能
  4. public class Person implements Serializable{
  5.         /**
  6.          *
  7.          */
  8.         //自动生成序列化uid值,可以读取保存的对象
  9.         private static final long serialVersionUID = 1523235872808630995L;
  10.         private String name;
  11.         //加上transient关键字使该成员变量不能被序列化
  12.         private transient int age;
  13.        
  14.         public Person(String name, int age) {
  15.                 super();
  16.                 this.name = name;
  17.                 this.age = age;
  18.         }
  19.        
  20.         public Person() {
  21.                 super();
  22.                 // TODO 自动生成的构造函数存根
  23.         }

  24.         /**
  25.          * @return name
  26.          */
  27.         public String getName() {
  28.                 return name;
  29.         }
  30.         /**
  31.          * @param name 要设置的 name
  32.          */
  33.         public void setName(String name) {
  34.                 this.name = name;
  35.         }
  36.         /**
  37.          * @return age
  38.          */
  39.         public int getAge() {
  40.                 return age;
  41.         }
  42.         /**
  43.          * @param age 要设置的 age
  44.          */
  45.         public void setAge(int age) {
  46.                 this.age = age;
  47.         }

  48.         /* (非 Javadoc)
  49.          * @see java.lang.Object#toString()
  50.          */
  51.         @Override
  52.         public String toString() {
  53.                 return "Person [name=" + name + ", age=" + age + "]";
  54.         }
  55.        
  56. }

复制代码
  1. package objectinputStream;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.ObjectInputStream;
  7. import java.io.ObjectOutputStream;
  8. public class ObjectStreamDemo {
  9.         public static void main(String[] args) throws IOException,
  10.                         ClassNotFoundException {
  11.                 File file = new File("object.txt");
  12.                 Person p = new Person("marcojam", 26);
  13.                 write(p, file);
  14.                 System.out.println(read(file));
  15.         }
  16.         public static void write(Person p, File file) throws IOException {
  17.                 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
  18.                                 file));
  19.                 oos.writeObject(p);
  20.                 oos.close();
  21.         }
  22.         public static Object read(File file) throws IOException,
  23.                         ClassNotFoundException {
  24.                 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
  25.                 Object obj = ois.readObject();
  26.                 ois.close();
  27.                 return obj;
  28.         }
  29. }
复制代码






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