问题描述
2.9M10000+条数据Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsExceptionatjava.lang.System.arraycopy(NativeMethod)atjxl.biff.StringHelper.getUnicodeString(StringHelper.java:189)atjxl.read.biff.WriteAccessRecord.<init>(WriteAccessRecord.java:50)atjxl.read.biff.WorkbookParser.parse(WorkbookParser.java:820)atjxl.Workbook.getWorkbook(Workbook.java:237)atjxl.Workbook.getWorkbook(Workbook.java:198)atcom.lr.test.Test.excel(Test.java:28)atcom.lr.test.Test.main(Test.java:20)怎么处理?
解决方案
解决方案二:
这是一个数组索引越界异常,应该是在拷贝数组或向数组中添加数据时,索引超过了“数组长度-1“,一般的做法是在向数组添加数据时先检查数组长度,长度不够时开一个新的数组然后进行数据拷贝,并将引用再附给原数组引用。
解决方案三:
http://suky.javaeye.com/blog/622272解决办法就是:增加java虚拟机的内存空间。修改方法参考:方法1.单独修改class的VM大小,在eclipse中,右键RunConfigurations->在“VMarguments”中设置参数-Xms256m-Xmx1024m,就可以将参数设置为1G。方法2.在eclipse安装目录下,修改eclipse.ini文件,修改-Xmx相应的值。方法3.选中eclipse的快捷图标,右键点属性,然后设置“d:eclipseeclipse.exe-vmargs-Xms128m-Xmx256m”。
解决方案四:
还有其他的方法吗?
解决方案五:
我用MyEclipse改了DefaultVmArguments还是不行我用POI解析也一样。有人知道吗?
解决方案六:
看了报错,无真相LZ的问题方向错了,不是JXL的问题.是你代码本身处理数据的问题吧?atcom.lr.test.Test.excel(Test.java:28)
解决方案七:
检查下是不是把cell的row和column搞错了,取不到cell。
解决方案八:
数组越界异常,你在操作前考虑一下数组的长度问题,做判断