使用对象流实现序列化
来源:互联网 发布:信托网络个人理财产品 编辑:程序博客网 时间:2024/04/30 18:36
如果需要将某个对象保存在磁盘上或是通过网络传输,那么这个类应该实现Serializable
其实实现Serializable非常简单,只要让目标类实现Serializable接口即可,也无需实现任何的方法。下面是通过对象流实现序列化的一个列子:
package Test;import java.io.ObjectOutputStream;import java.io.FileOutputStream;public class WriteObj {public static void main(String[] args){ObjectOutputStream oos=null;try{//下面三行就是对象实现序列化并输出到文件中的一般操作oos=new ObjectOutputStream(new FileOutputStream("object.txt"));Person ps=new Person("qianhao",18);//将对象输出到输出流,放到了object.txt文件oos.writeObject(ps);}catch(Exception e){e.printStackTrace();}finally{try{if(oos!=null){oos.close();}}catch(Exception e1){e1.printStackTrace();}}}}
下面是反序列化的列子:
package Test;import java.io.ObjectInputStream;import java.io.FileInputStream;public class ReadObj {public static void main(String[] args){ObjectInputStream ois=null;try{ois=new ObjectInputStream(new FileInputStream("object.txt"));Person p=(Person)ois.readObject();System.out.println("name is"+p.getName()+"age is"+p.getAge());}catch(Exception e){e.printStackTrace();}finally{try{if(ois!=null){ois.close();}}catch(Exception e1){e1.printStackTrace();}}}}
在反序列化程序中出现以下问题:
java.io.InvalidClassException: Test.Person; local class incompatible: stream classdesc serialVersionUID = 6617217288378285778, local class serialVersionUID = -2190347773987930449
at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
大概意思就是serialVersionUID不相匹配,所以需要在Person类中加上private long serialVersionUID=6617217288378285778l;
- 使用对象流实现序列化
- 使用对象流实现序列化
- 序列化---使用对象流实现序列化
- 使用序列化实现对象的拷贝
- 使用序列化实现对象的拷贝
- 使用序列化实现对象的拷贝
- 使用序列化实现对象的拷贝
- 使用对象输入输出流(ObjectOutputStream,ObjectInputStream)实现序列化对象的深度克隆
- 使用对象序列化实现自定义配置文件管理
- java提高篇-----使用序列化实现对象的拷贝
- Android使用Serializable实现序列化传输对象
- 7、使用序列化实现对象的拷贝
- 什么是对象序列化?如何实现?什么情况下使用?
- Android中使用Parcelable实现对象的序列化
- 实现javascript对象序列化
- Android对象序列化实现
- java 对象序列化使用
- 避免对象的浅拷贝,推荐使用序列化实现对象的拷贝
- Can we declare a class as static
- matlab 读取MPEG-4视频
- CAZyme注释
- UIImagePickerController详解
- 串行通信
- 使用对象流实现序列化
- 支持不同设备(3)支持不同版本
- 所谓的沃尔沃惹我热额外额而
- Android静默安装apk
- 顽皮哥教你做达人脚本
- Lua初识之LuaStdio使用方法
- Web控件和HTML控件
- 开发Android调试时logcat不显示输出错误信息的解决办法
- 企业如何做好微信营销