android 中用poi打开doc文件报错
android测试环境是4.0
poi是最新的
word文件是97-2003
错误是:OutOfMemory
错误位置为下方红色字体处(此段代码在poi源码中):
DocumentEntry dataProps =
(DocumentEntry)directory.getEntry(STREAM_DATA);
_dataStream = new byte[dataProps.getSize()];
directory.createDocumentInputStream(STREAM_DATA).read(_dataStream);
很明显是分配内存不足了。
我测试用的doc文件打开20多M,同样的程序和doc文件在另外一个性能好的机器上不会报错,运行正常。
为了测试手机new 操作时 到底多少可以内存不足我写了一小段程序:
测试结果是,我的手机在30M多时报错了。另外那个性能比较好的手机在100多M时才报错。。。
1.我想知道poi打开doc时,doc文件过大 怎么处理?
2.如果不太好处理的话,怎么可以知道手机new操作时能分配的内存大小?
3.有一个olivephone-sdk的jar包,他好像也调用的poi,但是他没有上面的问题,不知道他是修改了poi还是我自己使用有问题。。。求高手解答
poi是最新的
word文件是97-2003
错误是:OutOfMemory
错误位置为下方红色字体处(此段代码在poi源码中):
DocumentEntry dataProps =
(DocumentEntry)directory.getEntry(STREAM_DATA);
_dataStream = new byte[dataProps.getSize()];
directory.createDocumentInputStream(STREAM_DATA).read(_dataStream);
很明显是分配内存不足了。
我测试用的doc文件打开20多M,同样的程序和doc文件在另外一个性能好的机器上不会报错,运行正常。
为了测试手机new 操作时 到底多少可以内存不足我写了一小段程序:
new Thread() {
public void run() {
try {
int bsize = 1024;
while (true) {
byte[] bytes = new byte[bsize];
bytes = null;
bsize += 102400;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();测试结果是,我的手机在30M多时报错了。另外那个性能比较好的手机在100多M时才报错。。。
1.我想知道poi打开doc时,doc文件过大 怎么处理?
2.如果不太好处理的话,怎么可以知道手机new操作时能分配的内存大小?
3.有一个olivephone-sdk的jar包,他好像也调用的poi,但是他没有上面的问题,不知道他是修改了poi还是我自己使用有问题。。。求高手解答
...全文
相关推荐
安卓使用poi XWPFDocument读取及修改word文档
安卓使用poi XWPFDocument读取及修改word文档;安卓使用poi XWPFDocument读取及修改word文档;
安卓/android 打开 excel文件源代码
android打开excel源码,支持xls和xlsx格式。开发在2.3.3版本,2.3版本的系统测试成功。
Android解析并显示doc,docx,xls,xlsx文件
把office解析成html并保存显示,doc可以解析图片等。。
poi-3.15 及Android 打开doc工具类
poi-3.15所有jar文件且包含Android本地打开doc文档工具类
Apache POI for Android
适用于安卓的Excel读写库,简单易用


