您是否只需要在加载/保存操作之后或创建的每个新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。

10-01 20:33