欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
一、先来看一下程序要生成的xml文件的结构
Xml代码
01.<File>
02. <FileType>1</FileType>
03. <RType>12</RType>
04. <Version>03</Version>
05. <BNo>004</BNo>
06. <FileQ>5</FileQ>
07. <FNo>0006</FNo>
08. <RecordNum>1000000</RecordNum>
09. <!– 上面是文件头 下面是百万个<RecordList> –>
10. <RecordList>
11. <Msisdn>10350719507</Msisdn>
12. <State>1</State>
13. <StartDate>20110303</StartDate>
14. <Date>20110419</Date>
15. <Balance>45000</Balance>
16. </RecordList>
17. … <!– 可能百万个 <RecordList> 块–>
18. </File>
二、给大家说一下如何把大数据生成xml文件
1、小数据量的情况下 < 1W条数据
比较好用的方法是使用开源框架,比如XStream 直接把javabean 生成 xml
优点:api操作简单,方便维护
缺点:数据量大的情况下太消耗内存
2、大数据量生成一个xml文件(本程序采用的方法)
自己做的一个可以使用极少的内存生成无限制大的xml文件框架由3部分生成xml文件
第一部分:生成文件头
例如: xxx.toXML(Object obj, String fileName)
第二部分:通过每次向文件里面追加3000(可配置)条数据的形式生成文件块
例如:xxx.appendXML(Object object); //object 可以是ArrayList 或者一个单独的javaBean
第三部分:生成xml文件尾巴
例如:xxx.finishXML();
程序中的调用:调用xxx.toXML(Object obj, String fileName) 生成文件头之后,可以循环从数据库中读取数据生成ArrayList,通过xxx.appendXML(Object object) 方法追加到xml文件里面,xxx.finishXML() 对文件进行收尾
对框架说明:我上面提供的例子有文件头 + 文件块 + 文件尾巴。 如果和你们的实际使用文件不太一致的话,可以参考上面提供的思路修改一下即可,主要的方法是把相同的文件块部分分离出来通过追加的形式写入xml文件。
有了思路之后,大家可以尝试着自己写一个类似的大数据处理框架(千万级别以上),如何有什么需要帮助的可以直接联系我,因为是公司的程序,不太敢放出来,怕……
[1][2]
如果没法忘记他,就不要忘记好了。真正的忘记,是不需要努力的。