各位大侠,小弟在测试一个程序使用dom4j模拟将1000000万条数据写入xml文档,但是却报了内存溢出问题,请问该如何解决呢?即用。下面是我的代码:package org.ziptest.util;import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.dom4j.Document;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;public class XmlUtil {

/**
 * 模拟将10万条数据写入xml文档
 * @return
 */
public static File createBigXml() {
File xmlFile = null;
Document document = DocumentFactory.getInstance().createDocument();
document.setXMLEncoding("gb2312");
Element root = document.addElement("books");
for (int i = 1; i <= 300000; ++i) {
Element elBook = root.addElement("book");
elBook.addAttribute("id", String.valueOf(i));
elBook.addElement("title").setText("书籍" + i);
}
OutputFormat format = new OutputFormat("    ", true, "gb2312");
XMLWriter out = null;
BufferedOutputStream bos = null;
try {
xmlFile = new File("books.xml");
bos = new BufferedOutputStream(new FileOutputStream(xmlFile));
out = new XMLWriter(bos, format);
out.write(document);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bos.flush();
bos.close();
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return xmlFile;
}

}