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

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()它,它不允许我删除文件,除非我终止该进程。

我正在使用Java 1.80_92

最佳答案

Java 6似乎有时会出现一个问题,在Java 7中还没有出现过,但是如果您将其关闭却仍然似乎文件上挂着某些东西,则可能必须调用gc,以便让jvm完全释放文件,以便将其删除。可怕的练习,但这是我过去遇到的唯一有效的方法。

09-11 17:03