私のような10の000 000ノードとテスト用のファイルを作成しようとしました:ノード(10万円)の数が多いXMLファイルを作成します
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory
.newDocumentBuilder();
Document document = documentBuilder.newDocument();
Element rootElement = document.createElement("root");
document.appendChild(rootElement);
for (int i = 1; i <= 10000000; i++) {
Element em = document.createElement("ch");
em.appendChild(document.createTextNode("ch_data"));
rootElement.appendChild(em);
}
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File("c:/file1.xml"));
transformer.transform(source, result);
しかし、エラーを受け取った:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl. createElement(CoreDocumentImpl.java:620) at main.CreatXMLFile.main(CreatXMLFile.java:27)
が存在しますかJavaで10 000 000以上のノードを持つXMLファイルを作成するための別のライブラリですか?
なぜこのような大量のXMLファイルを作成したいのですか?各ノードが約60バイトとして保存されていると仮定すると、このファイルは600MB以上になります(バイナリMiBではなくデシマルMBです)。これはフラットファイルのサイズが大きいためです。このファイルに何かを保存するつもりなら、データベースはより良い解決策にはなりませんか? –