我正在使用以下简单的StAX代码来遍历XML中的所有标签。尺寸
input.xml> 100 MB
XMLInputFactory xif = XMLInputFactory.newInstance();
FileInputStream in = new FileInputStream("input.xml");
XMLStreamReader xsr = XMLInputFactory.newInstance().createXMLStreamReader(in);
xsr.next();
while (xsr.hasNext()) {
xsr.next();
if(xsr.isStartElement() || xsr.isEndElement())
System.out.println(xsr.getLocalName());
}
}
我收到此错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
请告诉我如何解决这个问题。我读到StAX很好地处理了巨大的XML,但是我遇到了与DOM分析器相同的错误。
最佳答案
在运行JVM时定义堆大小
-Xms initial java heap size
-Xmx maximum java heap size
-Xmn the size of the heap for the young generation
例:
bin/java.exe -Xmn100M -Xms500M -Xmx500M