我有大小为160MB的jave文件。
当我尝试在PdfReader(Itext Library)中加载它时会触发以下错误:
java.io.IOException: Not enough storage is available to process this command
我正在使用Java版本1.5(32位)。
代码:
PdfReader pdfReader = null;
try{
pdfReader = new PdfReader("D://bigfile.pdf");
//also try using pdfReader = new PdfReader(new RandomAccessFileOrArray("D://bigfile.pdf"),null);
}catch(Exception e){
System.out.println("Error");
e.printStackTrace();
}
我设置了以下堆大小参数:
-Xms1000m -Xmx1500m -XX:MaxPermSize=512m
我在PdfReader中加载文件之前得到了堆统计信息:
##### Heap utilization statistics [MB] #####
Used Memory:70
Free Memory:921
Total Memory:992
Max Memory:1016**
答案 0 :(得分:1)
我对自己的问题的回答是错误的,所以对其他人有帮助。
我已解决问题使用以下代码(using Document.plainRandomAccess=true;)
:
PdfReader pdfReader = null;
try{
Document.plainRandomAccess=true;
pdfReader = new PdfReader(new RandomAccessFileOrArray("D://bigfile.pdf"),null);
}catch(Exception e){
System.out.println("Error");
e.printStackTrace();
}