生成xml文件出现的内存溢出问题。 我用java代码读取了Excel文件,当生成xml文件时,我的Excel文件内容超过20000条记录,所以生成xml文件就会出现内存溢出,请问有什么方法,处理这种问题。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把java内存调整大一点吧!呵呵!! 顶,谁能解决问题,要是感觉分少,我可以在开一个,给分,只要能解决问题。我是用jxl读取Excel文件的。以下是我读取文件的代码?最多能读3000条,谁能帮我修改一下,我要读30000条数据。 try{ InputStream is = new FileInputStream("d:\\Excel.xls"); jxl.Workbook rwb = Workbook.getWorkbook(is); Sheet rs=rwb.getSheet(0); String[] cols = {"序号","机构代码","受理日期","结案日期","保单号","投保人","被投诉人","投诉来源","投诉原因","投诉险种","业务渠道","处理结果","是否推荐选入案例库","投诉事由","处理情况概述","客服意见","转出日期1","转办部门1","反馈日期1","接待人员1","转出日期2","转办部门2","反馈日期2","接待人员2","转出日期3","转办部门3","反馈日期3","接待人员3","转出日期4","转办部门4","反馈日期4","接待人员4","备注","","","","","","",""}; Element root=new Element("root");//创建根节点 Document doc=new Document(root);//创建节点元素 Element row=new Element("row"+0);//子节点 for(int i=0;i<cols.length;i++){ //循环遍历列的值 Element dd=new Element("a"+i); dd.setText(cols[i]); row.addContent(dd); } for(int i=3;i<2500;i++){ //遍历每行的数据 String[] s =new String[cols.length]; Element row2=new Element("row"+i); for(int j=0;j<cols.length;j++){ Cell c00 = rs.getCell(j,i); String strc00 = c00.getContents(); Element dd=new Element("a"+j); dd.setText(strc00); row2.addContent(dd); s[j]=strc00; } if ((s[0]==null||"".equals(s[0]))||(s[1]==null||"".equals(s[1]))||(s[2]==null||"".equals(s[2]))||(s[5]==null||"".equals(s[5]))){ //判断1,2,3,5,列中是否有空的字符串,如果有终止循环 break; } root.addContent(row2); } Format format=Format.getCompactFormat(); format.setEncoding("UTF-8");//设置xml中的编码 format.setIndent(" "); XMLOutputter XMLOut=new XMLOutputter(format);//将文档以xml格式输出 XMLOut.output(doc,new FileOutputStream("D:/conser.xml")); is.close(); }catch (Exception e1){ e1.printStackTrace();} java 怎么加载ico格式的图标呢,各位同仁??? PreparedStatement问题 大家帮忙看下,解释一下疑问 关于进程的调用,已经waitfor()方法的使用等相关问题???? 简单文件读写问题,为何部分汉字会变成?? 菜鸟求助:点击图片时 给图片加个边框 这是什么意思? 江湖救急!关于Gif文件的生成! jb5安装问题 编译安装hadoop-2.5.0-rc1,程序包com.sun.javadoc不存在 在netbeans中新建项目报异常 关于JAVA解析XML的问题??????
呵呵!!
以下是我读取文件的代码?最多能读3000条,谁能帮我修改一下,我要读30000条数据。 try{
InputStream is = new FileInputStream("d:\\Excel.xls");
jxl.Workbook rwb = Workbook.getWorkbook(is);
Sheet rs=rwb.getSheet(0);
String[] cols = {"序号","机构代码","受理日期","结案日期","保单号","投保人","被投诉人","投诉来源","投诉原因","投诉险种","业务渠道","处理结果","是否推荐选入案例库","投诉事由","处理情况概述","客服意见","转出日期1","转办部门1","反馈日期1","接待人员1","转出日期2","转办部门2","反馈日期2","接待人员2","转出日期3","转办部门3","反馈日期3","接待人员3","转出日期4","转办部门4","反馈日期4","接待人员4","备注","","","","","","",""};
Element root=new Element("root");//创建根节点
Document doc=new Document(root);//创建节点元素
Element row=new Element("row"+0);//子节点
for(int i=0;i<cols.length;i++){ //循环遍历列的值
Element dd=new Element("a"+i);
dd.setText(cols[i]);
row.addContent(dd);
}
for(int i=3;i<2500;i++){ //遍历每行的数据
String[] s =new String[cols.length];
Element row2=new Element("row"+i);
for(int j=0;j<cols.length;j++){
Cell c00 = rs.getCell(j,i);
String strc00 = c00.getContents();
Element dd=new Element("a"+j);
dd.setText(strc00);
row2.addContent(dd);
s[j]=strc00;
}
if ((s[0]==null||"".equals(s[0]))||(s[1]==null||"".equals(s[1]))||(s[2]==null||"".equals(s[2]))||(s[5]==null||"".equals(s[5]))){
//判断1,2,3,5,列中是否有空的字符串,如果有终止循环
break;
}
root.addContent(row2);
}
Format format=Format.getCompactFormat();
format.setEncoding("UTF-8");//设置xml中的编码
format.setIndent(" ");
XMLOutputter XMLOut=new XMLOutputter(format);//将文档以xml格式输出
XMLOut.output(doc,new FileOutputStream("D:/conser.xml"));
is.close();
}catch (Exception e1){
e1.printStackTrace();}