/*对象持久化存储要实现Serializable接口,
UID码为序列码,一个类被改动后,编译的字节码的UID码也会相应改变,此时的UID码与
改变前持久存储的对象的UID码不符合而出异常,
对要实现持久化存储的类显式定义他的UID码,
public static final long serialVersionUID = 42L;
则对类的改动不会改变UID码,规避此异常;
类中的静态成员不会被持久化存储,要实现非静态成员也不进行持久化存储,需加上transient关键字修饰
如: transient int age;
对象持久化存储及取出用到的流对象ObjectOutputStream、ObjectInputStream
*/
import java.io.*;
class ObjectStreamDemo
{
public static void main(String[] args) throws Exception
{
//writeObj();
readObj();
}
public static void readObj()throws Exception
{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.txt"));
Person p = (Person)ois.readObject();
System.out.println(p);
ois.close();
}
public static void writeObj()throws IOException
{
ObjectOutputStream oos =
new ObjectOutputStream(new FileOutputStream("obj.txt"));
oos.writeObject(new Person("lisi0",399,"kr"));
oos.close();
}
} |