我需要在退出方法之前删除文件:
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完全释放文件,以便将其删除。可怕的练习,但这是我过去遇到的唯一有效的方法。