Durch das Zusammenführen von 1000 PDF-Dateien über iText wird java.lang.OutOfMemoryError: Java-Heapspeicher ausgelöst

Ich versuche, 1000 PDF-Dateien über iText zusammenzuführen. Ich bin nicht sicher, wo der Speicherverlust geschieht. Unten ist der Beispielcode. Beachten Sie, dass ich die untergeordnete PDF-Datei entferne, sobald ich mit der übergeordneten Datei verschmelze. Bitte weise auf einen Fehler im Code unten hin oder gibt es einen besseren Weg, dies ohne Gedächtnisauffassung zu tun. Dieser Vorgang erfolgt über das Servlet (kein eigenständiges Programm).

FileInputStream local_fis = null;
BufferedInputStream local_bis = null;
File localFileObj = null;
for(int taIdx=0;taIdx<totalSize;taIdx++){
    frObj = (Form3AReportObject)reportRows.get(taIdx);
    localfilename = companyId + "_" +  frObj.empNumber + ".pdf";

    local_fis = new FileInputStream(localfilename);
    local_bis = new BufferedInputStream(local_fis); 
    pdfReader = new PdfReader(local_bis);

    cb = pdfWriter.getDirectContent(); 
    document.newPage();
    page = pdfWriter.getImportedPage(pdfReader, 1);
    cb.addTemplate(page, 0, 0);
    local_bis.close();
    local_fis.close();

    localFileObj = new File(localfilename);
    localFileObj.delete();
}
document.close();

Antworten auf die Frage(7)

Ihre Antwort auf die Frage