情况是这样的:我使用dom4j解析一个2.3G的xml文件,代码如下:
Document doc = null;
SAXReader reader = new SAXReader();
try {
doc = reader.read(new FileReader(new File(fileName)));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
System.out.println(doc);
Element root = doc.getRootElement();
System.out.println(root.getName());
jvm启动参数:-Xms256M -Xmx1400M
jvm内存应该是够的,我监控过内存,在解析过程中jvm的1400M的内存一直都没用完。
报错如下:Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Arrays.java:3209)
at java.lang.String.<init>(String.java:215)
at org.dom4j.io.SAXContentHandler.characters(SAXContentHandler.java:299)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.characters(AbstractSAXParser.java:538)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:464)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.dom4j.io.SAXReader.read(SAXReader.java:365)
at dom4j.sax.bigdata.SaxBigDataTest.main(SaxBigDataTest.java:20)
求高人指点!!