0

我需要在退出方法之前删除文件:

String holdInFdfFile = "myPDF1";
this.holdModifiedPDFDir = "C:\\pdfs\\Jobs\\";
String tempString = this.holdModifiedPDFDir + "\\" + holdInFdfFile;

//Create Flattened PDF
PdfReader PDFreaderFlattened = new PdfReader(this.holdOriginalPDFDir + holdInPdfFile);
FileOutputStream foutFlattened = new FileOutputStream(this.holdModifiedPDFDir + holdInFdfFile + "_FLAT.pdf");
PdfStamper stampFlattened = new PdfStamper(PDFreaderFlattened, foutFlattened);
FdfReader holdFDFreaderFlattened = new FdfReader(tempString);
stampFlattened.setFreeTextFlattening(true);
stampFlattened.setFullCompression();
stampFlattened.setFormFlattening(true);
stampFlattened.setFullCompression();
AcroFields formFlattened = stampFlattened.getAcroFields();
formFlattened.setFields(holdFDFreaderFlattened);

stampFlattened.close();
foutFlattened.close();

我需要删除foutFlattened文件。

我也注意到,即使我想close(),它也不允许我删除文件,除非我终止进程。

我正在使用 java1.80_92

4

1 回答 1

1

Java 6 似乎不时出现一个问题。我在 Java 7 中没有看到它,但如果你关闭它并且文件上似乎仍然挂着什么东西,你可能不得不打电话用于 gc 以使 jvm 完全释放文件,以便您可以将其删除。可怕的做法,但这是我过去遇到这种情况时唯一有效的方法。

于 2016-05-04T19:02:01.330 回答