读取文件报java.lang.OutOfMemoryError
点击下面标题查看本文完整版:读取文件报java.lang.OutOfMemoryError
读取文件报java.lang.OutOfMemoryError:
用Eclipse编写了一个程序,涉及到在文本文件中读取数据进行处理,数据量一超过就会提示java.lang.OutOfMemoryError,减少数据量就没问题,我已经扩展了2G内存,请问如何让我的程序能够使用更多的内存去执行?我试过设置eclipse的eclipse.ini中的
-vmargs
-Xms512m
-Xmx1024m
这样改了还是不行。。请问这个问题怎么解决
------解决方法--------------------
eclipse.ini设置的是eclipse占用的内存,不是你应用程序
你可以在每个应用程序的启动项里设置。就是run小三角旁边的下拉箭头,然后点run...就可以设置了
------解决方法--------------------
增大内存,及时关闭流,使用buffer读写
------解决方法--------------------
兄弟,你的这些close请放到finally块里 好吗?
------解决方法--------------------
所有的涉及到资源的释放都要放到finally里(如,释放链接,文件流的关闭)
你给的两段代码里所有的reader.close()都要这样修改
还有,你使用jml操作了excel,那些workbook最终close了没?
------解决方法--------------------
首先,你得确认一下你的这两个参数是不是真正的改过来了,确认方法是在Doc环境下用命令行,具体的命令随便baidu或Google一下就可以了。因为你在一个地方改了这个参数,并不能保证JVM获得的就是这个值,要保证你使用的JVM是使用的这个值。
如果你确认了,这个参数确实是你设置的值,那么你就得检查你的代码了,据我的经验1G的内存能够存放的数据量,一般是很难达到的。故你经常溢出,很可能就是你代码写的有问题。