java千万级别数据生成文件思路和优化

欢迎进入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]

如果没法忘记他,就不要忘记好了。真正的忘记,是不需要努力的。

java千万级别数据生成文件思路和优化

相关文章:

你感兴趣的文章:

标签云: