站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题100分求解决方案:用POI的HSSF读取excel的问题:数据条数(5000)多的时候,会产生outofmemory错误~

100分求解决方案:用POI的HSSF读取excel的问题:数据条数(5000)多的时候,会产生outofmemory错误~

摘要: 100分求解决方案:用POI的HSSF读取excel的问题:数据条数(5000)多的时候,会产生outofmemory错误~


和rester214 (呆呆中) 问题略不一样,

他的是写的问题,我在读的时候就OOM了,就这么两句
java.io.File file = new java.io.File(-#34;xxx.xls-#34;);
fs = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook wb = new HSSFWorkbook(fs) //在这就溢出了,

我的文件才5000行



有谁知道,对于5000行的数据,如果不这么做,能够使用别的方法绕过去吗?


你一行记录是不是很多字段内容么?


你不一定要先全部读入内存,你可以一段一段的读



设置JVM的初始,内容,大一点试试..

在Eclipse中,,修改eclipse.ini

Tomcat中: 增加环境变量....

-Xms256m -Xmx512m




不可以new多了对象,你可以公用一个对象,我也犯过这个错误,你检查一下new 了多少个对象,重点是循环里面的


我只new了一个对象啊,而且我没法分批读啊,因为 你们看到的HSSFWorkbook的参数只能是一个完整的POIFSFileSystem对象


sundeveloper(51TTUP) 兄的意见基本上是对的,

开始的时候,我也这么设置的,结果不行,这个设置是Eclipse启动以后Eclise本身做为一个java进程所需要的内存。

最后我是在命令行下面,直接运行的java -Xmx256m实现的。
如果不加参数,我看java本身默认的内存似乎在80M左右就溢出了。


↑返回目录
前一篇: 谁能给一个mdb5加密的java版加密算法?
后一篇: JNI调用问题!!!无法调用DLL!!!立即结帐