Java 无法处理大型PDF文件

Java 无法处理大型PDF文件,java,itext,heap-memory,ioexception,Java,Itext,Heap Memory,Ioexception,我有160MB大小的jave文件 当我尝试在PdfReader(Itext库)中加载它时,它会触发以下错误: java.io.IOException: Not enough storage is available to process this command 我使用的是Java版本1.5(32位) 代码: 我设置了以下堆大小参数: -Xms1000m -Xmx1500m -XX:MaxPermSize=512m 在将文件加载到PdfReader之前,我将获得以下堆统计信息: #####

我有160MB大小的jave文件

当我尝试在PdfReader(Itext库)中加载它时,它会触发以下错误:

java.io.IOException: Not enough storage is available to process this command
我使用的是Java版本1.5(32位)

代码:

我设置了以下堆大小参数:

-Xms1000m -Xmx1500m -XX:MaxPermSize=512m
在将文件加载到PdfReader之前,我将获得以下堆统计信息:

##### Heap utilization statistics [MB] #####
Used Memory:70
Free Memory:921
Total Memory:992
Max Memory:1016**

我正在为自己的问题寻找答案,以便对其他人有所帮助

我已使用以下代码解决了问题(
使用Document.plainRandomAccess=true;)


你有足够的存储空间吗?请检查我的问题我已经在打印堆统计数据了。我指的是磁盘存储,而不是内存。是的,它超过32 GBfree@ButaniVijay如果我使用Document.plainRandomAccess=true;那就没问题了。使用这个安全吗?是的。它可能会稍微慢一点,但它是安全的。这表明您的设置中的文件内存映射存在一些问题。不推荐使用new RandomAccessFileOrArray(字符串)。是否有其他方法?
##### Heap utilization statistics [MB] #####
Used Memory:70
Free Memory:921
Total Memory:992
Max Memory:1016**
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();
    }