2015-09-29 30 views
0

我想使用PdfReader讀取250MB的pdf文件,但是它給內存問題。使用PdfReader時的內存問題

我已經嘗試過PdfReader不同構造PdfReader(文件名),PdfReaderbyte[]),PdfReader(inputstream),但所有它給堆的內存問題的同樣的錯誤。

有什麼辦法可以解決這個問題。我的電腦的RAM是4GB。

如何解決這個問題,以便它可以工作到1GB的pdf。

+0

你想通過讀取一個巨大的文件來達到什麼目的?這個文件可以在讀取之前被破壞嗎? –

+0

你看過內存相關的JVM參數嗎?'xmx'等 – reto

+0

您是否嘗試過PDFReader(new RandomAccessFileOrArray(new FileInputStream(...); –

回答

1

根據要求,您可以使用可以減少內存使用量的部分讀取方法。代替將整個文件讀入內存PdfReader(文件名),PdfReader(byte []),PdfReader(inputstream),你可以嘗試下面的代碼。

新PDFReader(新RandomAccessFileOrArray(新的FileInputStream(...),NULL);

此外,我想你想知道是否有改善,通過編碼存儲器利用的方式,而不是通過增加堆大小,你可以使用-xms和-xmx標誌

+0

它給這一行上的錯誤新的PdfReader(新的RandomAccessFileOrArray(新的FileInputStream(新的文件(源文件)))); 找到PdfReader(RandomAccessFileOrArray) 構造PdfReader.PdfReader(字符串)沒有合適的構造方法是不適用 (自變量不匹配; RandomAccessFileOrArray不能轉換爲String) 構造PdfReader.PdfReader(字節[])是不適用 (自變量不匹配; RandomAccessFileOrArray無法轉換爲byte []) –

+0

我相信你正在使用itext?如果是的話哪個版本? –

+0

@Neo Noir開發者是的,你是正確的我正在使用itext 5.5.4 –