首先,我在從數據庫獲取數據時遇到了問題,它佔用了太多內存並失敗了。我已經設置了-Xmx1500M,並且我正在使用滾動結果集,因此被照顧。現在我需要從數據中創建一個XML,但我不能將它放在一個文件中。目前,我這樣做:如何將大量數據從數據庫存儲到XML(內存問題)?
while(rs.next()){
i++;
xmlStringBuilder.append("\n\t<row>");
xmlStringBuilder.append("\n\t\t<ID>" + Util.transformToHTML(rs.getInt("id")) + "</ID>");
xmlStringBuilder.append("\n\t\t<JED_ID>" + Util.transformToHTML(rs.getInt("jed_id")) + "</JED_ID>");
xmlStringBuilder.append("\n\t\t<IME_PJ>" + Util.transformToHTML(rs.getString("ime_pj")) + "</IME_PJ>");
//etc.
xmlStringBuilder.append("\n\t</row>");
if (i%100000 == 0){
//stores the data to a file with the name i.xml
storeKBR(xmlStringBuilder.toString(),i);
xmlStringBuilder= null;
xmlStringBuilder= new StringBuilder();
}
它的工作原理;我得到12個100 MB文件。現在,我想要做的是在一個文件中存儲所有這些數據(然後我壓縮),但是如果只刪除if部分,我就會失去內存。我想寫一個文件,關閉它,然後打開,但是這並沒有太大的幫助,因爲我打開文件時不得不將文件加載到內存中。
這樣做的一種方法是 - 使用xml api寫入多個xml文件,然後使用文件i/o合併所有文件的內容? – Inv3r53 2010-05-24 08:11:17