首先,我从数据库获取数据时出现问题,它占用了太多内存并且失败了.我已经设置-Xmx1500M并且我正在使用滚动ResultSet来处理这个问题.现在我需要从数据中创建一个
XML,但我不能把它放在一个文件中.目前,我这样做:
while(rs.next()){
i++;
xmlStringBuilder.append("\n\t");
xmlStringBuilder.append("\n\t\t" + Util.transformToHTML(rs.getInt("id")) + "");
xmlStringBuilder.append("\n\t\t" + Util.transformToHTML(rs.getInt("jed_id")) + "");
xmlStringBuilder.append("\n\t\t" + Util.transformToHTML(rs.getString("ime_pj")) + "");
//etc.
xmlStringBuilder.append("\n\t");
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部分,我就会耗尽内存.我想过尝试写一个文件,关闭它,然后打开,但这不会让我感觉太多,因为我打开它时必须将文件加载到内存中.