黑马程序员技术交流社区
标题:
生成XML文件时,数据太多导致溢出,怎么办?
[打印本页]
作者:
杨冉
时间:
2013-3-14 16:39
标题:
生成XML文件时,数据太多导致溢出,怎么办?
主程序大概思路就是这样,以credit标签外边套一层cbrc标签为例演示下我的想法:
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.jdom.*;
import org.jdom.output.XMLOutputter;
public class XmlFileGen {
public static void main(String[] args){
try{
Element root = new Element("cbrc");
root.setAttribute(new Attribute("reportnumber","01"));
root.setAttribute(new Attribute("bankcode","XXXXXXXXXXXXXXXXX"));
root.setAttribute(new Attribute("bankname","XX银行"));
root.setAttribute(new Attribute("reportdate","201303"));
root.setAttribute(new Attribute("version",""));
Document document = new Document(root);
Element basicElement = new Element("credit");
Element customerType = new Element("customerType").addContent("1");
Element customerName = new Element("customerName").addContent("XX能源集团");
Element customerCode = new Element("customerCode").addContent("XX-XXXX");
Element nationalityCode = new Element("nationalityCode").addContent("CHN");
basicElement.addContent(customerType);
basicElement.addContent(customerName);
basicElement.addContent(customerCode);
basicElement.addContent(nationalityCode);
root.addContent(basicElement);
org.jdom.output.Format format=org.jdom.output.Format.getPrettyFormat();
XMLOutputter output = new XMLOutputter(format.setIndent(" "));
OutputStream os = new FileOutputStream(new File("dd.xml"));
output.output(document, os);
}catch(Exception e){
e.printStackTrace();
}
}
}
复制代码
生成XML结果如下:
<?xml version="1.0" encoding="UTF-8"?>
<cbrc reportnumber="01" bankcode="XXXXXXXXXXXXXXXXX" bankname="XX银行" reportdate="201303" version="">
<credit>
<customerType>1</customerType>
<customerName>XX能源集团</customerName>
<customerCode>XX-XXXX</customerCode>
<nationalityCode>CHN</nationalityCode>
</credit>
</cbrc>
复制代码
这样生成一个简单的XML文件当然没有问题,但实际上一个XML文件里边经常会有几万个标签。。。用这样的方法生成XML文件非常容易就会溢出了,那我们该如何解决呢?
作者:
陈腾跃_2013
时间:
2013-3-14 18:09
本帖最后由 陈腾跃_2013 于 2013-3-14 18:18 编辑
恩,个人觉得这个以后应该使用数据库+bean的方式来存储吧。XML在这个方面只是起演示作用,或者作为配置文件来使用。
(就是说XML本来就不是用来大量存储数据的)
如果允许不用XML的话,以后好像还有一种使用配置文件存储信息的选择。
即使用“.properties”文件来“模仿”数据库。
(还没学到,呵呵,总之用数据库解决吧)
有说错的地方,欢迎大家拍砖斧正。
作者:
张善颖
时间:
2013-3-16 21:26
建议使用sax解析 ,dom解析会将所有的数据读入内存 。或者进行增加硬件设施,或优化jvm等操作。
作者:
陈丽莉
时间:
2013-3-17 13:31
若仍有问题,请继续追问或完善问题;没问题的话,请将帖子分类改成【已解决】~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2