序列化与反序列化 实现序列化的方式
2014-05-03 23:48
260 查看
方式一: implements Serializable 这个比较常用, 对于我们想要保护的某些属性使用transient修饰。
这样的话我们就不能把这个属性值写入磁盘了,保存对象使用ObjectOutputStream 的writeObject(obj) 方法;
读取就是翻过啦,使用输入流ObjectInputStream的 readObject
方式二: implements Externalizable
说一下Externalizable接口 ,Externalizable接口继承了Serializable,
但是有提供了两个方法
public void writeExternal(ObjectOutput out) throws IOException {}和
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {}
先说一下实现Externalizable接口的类,它默认对象的属性值时transient (瞬时)的不会被序列化
但是使用上边的两个方法可以让我们自由的去实现我们想要的序列化属性,
比如我有一个属性String name 想序列化
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(name);
}
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
String str = (String)in.readObject();
}
我们必须在这两个方法里分别write 和read 不然 在我们序列化和反序列化中就会出现异常
implements Externalizable 实现序列化有点麻烦,但是我们可以很好的控制我们需要实现序列化的地方。
这样的话我们就不能把这个属性值写入磁盘了,保存对象使用ObjectOutputStream 的writeObject(obj) 方法;
读取就是翻过啦,使用输入流ObjectInputStream的 readObject
方式二: implements Externalizable
说一下Externalizable接口 ,Externalizable接口继承了Serializable,
但是有提供了两个方法
public void writeExternal(ObjectOutput out) throws IOException {}和
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {}
先说一下实现Externalizable接口的类,它默认对象的属性值时transient (瞬时)的不会被序列化
但是使用上边的两个方法可以让我们自由的去实现我们想要的序列化属性,
比如我有一个属性String name 想序列化
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(name);
}
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
String str = (String)in.readObject();
}
我们必须在这两个方法里分别write 和read 不然 在我们序列化和反序列化中就会出现异常
implements Externalizable 实现序列化有点麻烦,但是我们可以很好的控制我们需要实现序列化的地方。
相关文章推荐
- 黑马程序员_OC之内存管理
- [LeetCode] Valid Parentheses
- 马云:别在最能吃苦的年纪里选择了安逸!
- linux下DHCP在企业网中的应用(DHCP中继)
- Nginx负载均衡和LVS负载均衡的比较分析
- Word插入Latex公式的几种方式(TeXsWord、EqualX、Aurora等工具)
- MFC窗体滑动、缩放、渐变动态效果的实现
- 《中国教育史》简略
- JAVA异常处理机制
- CSS min-width 属性
- 嵌入式软件开发中linux系统的选择
- Problem 25:1000-digit Fibonacci number
- Oracle web tier——oracle web cache
- ArcGIS Server 10.1新特性
- 【Qt】全局忽略编译警告
- MODIS NDVI数据处理相关问题
- 细心
- 花瓣网轮播图效果
- 2.6Bootstrap学习之工具class、响应式工具
- onSaveInstanceState