摘要: 先感謝同事renial的<解析xml時遇到的一些問題>技術分享,下面是一些記錄和實際操作
1.使用Dom4j解析大文件時內存溢出的問題
問題是這樣的,當我用dom4j去解析一個幾十M的xml時,就出現out of memory.當然了,這也是根據你的機器性能而定的,我們都知道dom4j在各種DOM解析器中應該算是性能最好的,連大名鼎鼎的Hibernate都是用dom4j來解析XML配置文件的
問題出在于使用dom4j的SAXReader是會把整個XML文件一次性讀入,如果XML文件過大就會拋出out of memory,但即使是使用SAXParser批量讀入解析,但它也是一次解析完,假設XML文件有幾萬條數據,那么解析后就必須在內存放入這幾萬條對象.
常用的Dom4j文件解析方式:
InputStream is = new FileInputStream(filePath);
SAXReader reader = new SAXReader(); //將整個XML構建為一個Document
閱讀全文
1.使用Dom4j解析大文件時內存溢出的問題
問題是這樣的,當我用dom4j去解析一個幾十M的xml時,就出現out of memory.當然了,這也是根據你的機器性能而定的,我們都知道dom4j在各種DOM解析器中應該算是性能最好的,連大名鼎鼎的Hibernate都是用dom4j來解析XML配置文件的
問題出在于使用dom4j的SAXReader是會把整個XML文件一次性讀入,如果XML文件過大就會拋出out of memory,但即使是使用SAXParser批量讀入解析,但它也是一次解析完,假設XML文件有幾萬條數據,那么解析后就必須在內存放入這幾萬條對象.
常用的Dom4j文件解析方式:
InputStream is = new FileInputStream(filePath);
SAXReader reader = new SAXReader(); //將整個XML構建為一個Document
閱讀全文