Java1.1增加了一种有趣的特性,名为 object serialization。它面向那些实现了Serializable接口的对象,可以将它们转换成系列字节,并可以在以后完全恢复原来的样子。这一过程也可以通过网络进行。
为了序列化一个对象,要创建某些OutputStream(如FileOutputStream),然后将其封装到ObjectOutputStream。然后调用writeObject即可。反之依然。它不仅保留的对象的全景,而且能追踪对象内包含的所有引用,并保留。序列化过程不会调用Constructor。可以用声名transient来关闭某个属性的序列化。
import java.io.*;
import java.util.*;
public class TestSerial {
public static void main(String[] args) {
MyObject inObj = new MyObject();
inObj.setStr("Serialized");
try {
System.out.println("-StrA: "+inObj.getStrA());
System.out.println("-StrB: "+inObj.getStrB());
ObjectOutputStream out =
new ObjectOutputStream(
new FileOutputStream("serial.out"));
out.writeObject(inObj);
ObjectInputStream in =
new ObjectInputStream(
new FileInputStream("serial.out"));
MyObject outObj = (MyObject) in.readObject();
System.out.println("=StrA: "+outObj.getStrA());
System.out.println("=StrB: "+outObj.getStrB());
}
catch(Exception e) {
}
}
}
class MyObject implements Serializable{
public void setStr(String str) {
this.strA = str;
this.strB = str;
}
public String getStrA() {
return strA;
}
public String getStrB() {
return strB;
}
private String strA = "";
transient private String strB = "";
}
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=33473