在<Android开发艺术探索>中,讲到了一直困扰我的进程间通讯问题.其中,将类序列化,之后在另一进程中反序列化的方法令人印象深刻.现做笔记,加深记忆.
在Android中,如果一个类实现了Serializable接口,就可以实现类的序列化(保存为本地文件,或者通过网络传输).
而类中的serialVersionUID,是区别类的版本的依据.可以手动设置,也可以由java根据类中的属性自动生成.
例子(全程手输,不保证正确性):
类:
public class Bean implements Serializable {
private static final long serialVersionUID = 1234567890L;
public String param1 = "";
public int param2 = 1;
public boolean param3 = true;
...
}
实现序列化:
// 序列化
Bean bean = new Bean();
bean.param1 = "test";
bean.param2 = 0;
...
ObjectOutputStream oStream = new ObjectOutputStream(new FileOutputStream("test.txt"));
oStream.writeObject(bean);
oStream.close;
// 反序列化
ObjectInputStream iStream = new ObjectOutputStream(new FileInputStream("test.txt"));
Bean bean1 = (Bean)iStream.readObject();
iStream.close;