您是否只需要在加载/保存操作后或创建每个新的 PDDocument 对象后关闭 PDDocument(例如,在执行合并/拆分/...操作时)?
例如,我有 3 个从字节数组加载的 PDDocuments:
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。
关于java - 您是否总是需要关闭新的 PDDocument 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54913601/