什么是序列化

  Java中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中;然后在需要的时候,可以根据字节流中的信息来重构一个相同的对象。序列化机制在Java中有着广泛的应用,EJB、RMI等技术都是以此为基础的。

  正确使用序列化机制

  一般而言,要使得一个类可以序列化,只需简单实现java.io.Serializable接口即可(还要实现无参数的构造方法)。该接口是一个标记式接口,它本身不包含任何内容,实现了该接口则表示这个类准备支持序列化的功能。如下例定义了类Person,并声明其可以序列化。

public class Person implements Serializable {

 private static final long serialVersionUID = 1L;
 
 private String name;;
 private int age;
 public Person(){
 
 }
 public Person(String str,int n){
  System.out.println("Inside Person's Constructor");
  name = str;
  age = n;
 }
 public String getName() {
  return name;
 }
 public int getAge() {
  return age;
 }
}
 
  下面为三种格式转换的代码:

  1、默认格式

public class SerializeToFlatFile {
 public static void main(String[] args) {
  SerializeToFlatFile ser = new SerializeToFlatFile();
  ser.savePerson();
  ser.restorePerson();
 }
 
 public void savePerson(){
  Person myPerson = new Person("Jay", 24);
  try{
   FileOutputStream fos = new FileOutputStream("E:\person.txt");
   ObjectOutputStream oos = new ObjectOutputStream(fos);
   System.out.println("Person--Jay,24---Written");
  
   oos.writeObject(myPerson);
   oos.flush();
   oos.close();
  }catch(Exception e){
   e.printStackTrace();
  }
 }