方法一:
实现Serializable接口,这个我就不多说了
方法二:
实现Externalizable接口:
例子:
packagedemo;importjava.io.Externalizable;importjava.io.IOException;importjava.io.ObjectInput;importjava.io.ObjectOutput;public class XXS implementsExternalizable{privateString name;private intage;publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}public intgetAge() {returnage;
}public void setAge(intage) {this.age =age;
}public void writeExternal(ObjectOutput out) throwsIOException {
out.writeObject(this);
}public void readExternal(ObjectInput in) throwsIOException,
ClassNotFoundException {
in.readObject();
}
}
测试:
importjava.io.FileOutputStream;importjava.io.ObjectOutputStream;public classDemo11 {public static void main(String[] args) throwsException {
XXS xxs=newXXS();
xxs.setName("你好");
xxs.setAge(10);
ObjectOutputStream dos=new ObjectOutputStream(new FileOutputStream("xx.txt"));
dos.writeObject(xxs);
dos.close();
}
}
一些api:
Externalizable 实例类的唯一特性是可以被写入序列化流中,该类负责保存和恢复实例内容。 若某个要完全控制某一对象及其超类型的流格式和内容,则它要实现 Externalizable 接口的 writeExternal 和 readExternal 方法。这些方法必须显式与超类型进行协调以保存其状态。这些方法将代替定制的 writeObject 和 readObject 方法实现。
writeExternal(ObjectOutputout)
该对象可实现 writeExternal 方法来保存其内容,它可以通过调用 DataOutput 的方法来保存其基本值,或调用
ObjectOutput 的 writeObject 方法来保存对象、字符串和数组。
readExternal(ObjectInputin)
对象实现 readExternal 方法来恢复其内容,它通过调用 DataInput 的方法来恢复其基础类型,调用
readObject 来恢复对象、字符串和数组。
ObjectInput:
ObjectInput 扩展 DataInput 接口以包含对象的读操作。DataInput 包括基本类型的输入方法;ObjectInput 扩展了该接口,以包含对象、数组和 String 的输出方法。
原文:http://www.cnblogs.com/aigeileshei/p/5855823.html