序列化对象与Xml转换分析报告Word文件下载.docx
- 文档编号:22453394
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:9
- 大小:339KB
序列化对象与Xml转换分析报告Word文件下载.docx
《序列化对象与Xml转换分析报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《序列化对象与Xml转换分析报告Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
作者
参与者
起止日期
备注
1.0
2012-8-1---2012-8-3
序列化对象到Xml再返回的研究简要分析
1.1
2012-8-7
修改了Xml针对特殊字符造成的bug(改变xstream定制)------红色字体显著表示
注:
正文部分,只有最后一次变更的内容会以橙色加粗显示。
蓝色下划线标注的为附带的文件及文本帮助,点击直接进入
附录部分,只有最后一次变更的内容会以蓝色显示。
(文字较多橙色刺眼)
目录
0.文档介绍4
0.1文档目的4
0.2文档范围4
0.3读者对象4
0.4参考文献4
0.5术语与缩写解释4
1.序列化对象5
2.IO流5
3.Xstream读写Xml6
4.读写Txt与XML对比10
0.文档介绍
0.1文档目的
实现将数据库中存贮的对象序列化到Xml中去(包含图片的序列化),然后可以解析Xml再获取对象。
0.2文档范围
本文当适用于开发中或者开发后期数据库数据的倒库简要参考。
0.3读者对象
本文档预期读者对象为本项目组的开发人员,也可用于日后维护人员查询。
0.4参考文献
XStream完美转换Xml、JSON,CSND博客园hoojo;
0.5术语与缩写解释
缩写、术语
解释
XStream
xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换
1.序列化对象
将对象的状态信息转换为可以存储或传输的形式的过程。
在序列化期间,对象将其当前状态写入到临时或持久性存储区。
以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
1、序列化目的:
1)、以某种存储形式使自定义对象持久化
2)、将对象从一个地方传递到另一个地方
3)、使程序更具维护性
2、对象序列化简要步骤:
1)、创建一个对象输出流,它可以包装一个其他类型的目标输出流,如文件输
出流
2)、通过对象输出流的writeObject()方法写对象。
3、对象反序列化的步骤:
1)、创建一个对象输入流,它可以包装一个其他类型的源输入流,如文件输入
流;
2)、通过对象输入流的readObject()方法读取对象。
2.IO流
流是一个抽象的概念。
当Java程序需要从数据源读取数据时,会开启一个到数据源的流。
数据源可以是文件,内存或者网络等。
同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件、内存或者网络等。
流的创建是为了更方便地处理数据的输入输出。
流分为字节流和字符流。
字节流也称为原始数据,需要用户读入后进行相应的编码转换。
而字符流的实现是基于自动转换的,读取数据时会把数据按照JVM的默认编码自动转换成字符。
字节流由InputStream和OutputStream处理,而字符流由Reader和Writer处理。
Reader和Writer是Java后加入的处理类,出于让数据的处理更方便的目的.
附录:
JAVA-Io浅析(JAVAIo浅析参考文档)
3.Xstream读写Xml
整体部署及测试概览
应用框架:
xStream框架
准备jar包:
项目一览:
测试结果:
将e盘目录下的6幅图片通过Io流将字节码写入Xml中
通过解析Xml中对象Person属性photo的字节码生成图片到其他目录
过程耗时:
120+-10毫秒
生成Xml预览:
代码参考:
实体类Person---AddressBook--Page
Person对象:
AddressBook节点封装对象:
Page页面对象节点封装:
Util读写Xml方法类:
定制Xml节点属性(改变定制修订了之前特殊字符造成的bug)
方法名
方法参数
方法作用
setXStream
(XStreamstream)
定制Xml
makeXML
(Pagepage)
根据定制和Page对象创建Xml
writeXML
(Strings)
将字节流写进Xml文件
readXML2
(InputStreamin)
XStream解析Xml
readXML
Dom4j解析Xml(注释掉的代码)
Main主测试方法:
实例一个对象:
List<
Person>
list=newArrayList<
();
for(inti=0;
i<
6;
i++){
Personaddress=newPerson();
address.setName("
张"
+i);
address.setAge("
26"
);
address.setSex("
男"
Stringfile1="
e:
/"
+i+"
.jpg"
;
Stringcontent=Image.getRimg(file1);
address.setPhoto(content.toString());
list.add(address);
}
写XMl
/**写Xml文件*/
AddressBookaddes=newAddressBook();
addes.setPersons(list);
Pagepage=newPage();
page.setAddressBook(addes);
Util.writeXML(Util.makeXML(page));
读XML
4.读写Txt与XML对比
项目做了两个解决方案:
第一种:
将图片字符流写入TXT文件,然后解析TXT进行对象的反序列化
第二种:
将图片字节流写入XMl文件,然后解析XML进行对象的反序列化
两者采用上文提到的测试方法耗时存在差距
读写TXT耗时180毫秒左右
读写XML耗时120毫秒左右
查阅了资料没有得到很好的答案,暂时没有见解!
资料附带了两份项目,第一种对应项目:
xstreamDemo
第二种对应项目:
xstreamDemo1
导入之后在e盘根目录下放置6张图片作为测试直接运行Main类即可!
附带了XStream的jar包,帮助文档,版本1.3.1的源码
涉及链接附件均可在115网盘下载
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 序列 对象 Xml 转换 分析 报告