我需要在退出方法之前删除文件:
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
答案 0 :(得分:1)
有一个问题似乎不时出现在Java 6中。我还没有在Java 7中看到它,但是如果你关闭它并且它似乎仍然挂在文件上,你可能会必须调用一个gc才能让jvm完全释放文件,以便你可以删除它。可怕的练习,但这是我在过去遇到这种情况时唯一有效的方法。