您是否只需要在加载/保存操作之后或创建的每个新PDDocument对象(例如,执行合并/分割/ ...操作)时关闭PDDocument?
例如,假设我有3个从字节数组加载的PDDocument:
PDDocument pdf1 = PDDocument.load(bytearray1);
PDDocument pdf2 = PDDocument.load(bytearray2);
PDDocument pdf3 = PDDocument.load(bytearray3);
假设我然后将这3个pdf合并为一个PDDocument:
PdfMergerUtility merger = new PdfMergerUtility();
PDDocument mergedPdf = new PDDocument();
mergedDocument.appendDocument(mergedPdf, pdf1);
mergedDocument.appendDocument(mergedPdf, pdf2);
mergedDocument.appendDocument(mergedPdf, pdf3);
我关闭了3个pdf文件:
pdf1.close();
pdf2.close();
pdf3.close();
但是我现在是否还必须关闭mergedPdf还是不需要?
mergedPdf.close(); // is this needed?
最佳答案
完成对所有PDDocument
对象(以及mergedPdf
)的关闭操作。这是一个好习惯,并且可以避免内存泄漏。尽可能使用try-with-resources。