深入探索java对象的序列化

深入探索java对象的序列化

ID:14725130

大小:47.50 KB

页数:22页

时间:2018-07-30

深入探索java对象的序列化_第1页
深入探索java对象的序列化_第2页
深入探索java对象的序列化_第3页
深入探索java对象的序列化_第4页
深入探索java对象的序列化_第5页
资源描述:

《深入探索java对象的序列化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、深入探索Java对象的序列化深入探索Java对象的序列化对象序列化就是把对象写入到输出流中,用来存储或者传输。对象的反序列化就是从输入流中读取对象。要序列化的对象应该实现Serializable接口。Serializable接口是一个标识接口,没有抽象方法。Serializable有一个子接口Externalizable,实现Externalizable接口的类可以自行控制对象序列化荷反序列化过程。一般来说,没有必要自己实现序列化接口,直接交给Java虚拟机是上策。实现了序列化接口的类,如果其成员不需要序列化进去,则使

2、用transient关键字进行修饰。下面给出个例子:importjava.io.*;/***Java对象的序列化测试*File:ObjectStreamTest.java*User:leizhimin*Date:2008-3-1220:41:43*/publicclassObjectStreamTest{publicstaticvoidmain(Stringargs[]){testObjectSeri();testObjectInSeri();}/***对象序列化测试*/publicstaticvoidtestObje

3、ctSeri(){Personperson=newPerson("熔岩","341022225562156","lavasoft");FileOutputStreamfos=null;ObjectOutputStreamoos=null;try{fos=newFileOutputStream("Q:\study\java5study\src\io\person.dat");oos=newObjectOutputStream(fos);oos.writeObject(person);}catch(FileNot

4、FoundExceptione){System.out.println("找不到指定的文件!");e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}finally{try{oos.flush();oos.close();}catch(IOExceptione){e.printStackTrace();}}}/***对象反序列化测试*/publicstaticvoidtestObjectInSeri(){FileInputStreamfis=nul

5、l;ObjectInputStreamois=null;Personperson=null;try{fis=newFileInputStream("Q:\study\java5study\src\io\person.dat");ois=newObjectInputStream(fis);person=(Person)ois.readObject();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printSt

6、ackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}finally{try{ois.close();}catch(IOExceptione){e.printStackTrace();}}System.out.println(person.toString());}}/***测试序列化所用的类*/classPersonimplementsSerializable{privateStringusername;privateStringcardNum

7、ber;privatetransientStringpassword;publicPerson(Stringusername,StringcardNumber,Stringpassword){this.username=username;this.cardNumber=cardNumber;this.password=password;}publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.usernam

8、e=username;}publicStringgetCardNumber(){returncardNumber;}publicvoidsetCardNumber(StringcardNumber){this.cardNumber=cardNumber;}publicStringgetPassword(){returnpasswo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。