对象序列化
一、对象序列化:
对象序列化,是指将一个对象转换为二进制的数据流。如果一个类的对象要实现序列化,则对象所在的类必须实现Serializable接口。
如果要想完成对象序列化,则还要依靠ObjectOutputStream和ObjectInputStream类,前者属于序列化,后者是反序列化。
二、代码示例:
创建一个可序列化的类:
import java.io.Serializable;
public class Person implements Serializable {
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
private static final long serialVersionUID = 1L;
public String toString(){
return this.name+"="+this.age;
}
}
进行序列化写入文件:
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class TestDemo {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
ObjectOutputStream out=new ObjectOutputStream(
new FileOutputStream("c:/ser.txt"));
Person p=new Person("guoxu",25);
out.writeObject(p);
out.close();
}
}
反序列化操作:
import java.io.*;
public class TestDemo2 {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
ObjectInputStream out=new ObjectInputStream(
new FileInputStream("c:/ser.txt"));
Object obj=out.readObject();
Person p=(Person)obj;
System.out.println(p.toString());
out.close();
}
}
无论序列化,还是反序列化,都要求有原型类存在。