从java中读取时关闭PDF文件

时间:2016-02-29 10:27:08

标签: java file pdf pdfbox

我正在阅读pdf文件中的一些文字

try { 
    File pdfFile = new File("ffile.pdf");
    PDFParser parser = new PDFParser(new FileInputStream(pdfFile));     
    parser.parse();
    COSDocument cosDoc = parser.getDocument();
    PDFTextStripper pdfStripper = new PDFTextStripper();
    PDDocument pdDoc = new PDDocument(cosDoc);
    //do sth

} catch (Exception e) {
    System.err.println("An exception occured in parsing the PDF Document."
                    + e.getMessage());
}

有时我收到此错误:

WARNING [Finalizer] org.apache.pdfbox.cos.COSDocument.finalize Warning: You did not close a PDF Document

我在这里读了一个类似的qustion,它说我必须关闭打开的文件。所以,我添加了

finally{
    pdfFile.close();  //<-
}

但是Netbeans标记错误close()说无法找到符号。 那我要关闭什么呢?我也试过parser.close(),但这行也标有Netbeans的错误。

2 个答案:

答案 0 :(得分:2)

您使用过时的方式打开文件。这是正确的方法(省略异常处理):

File pdfFile = new File("ffile.pdf");
PDDocument pdDoc = PDDocument.load(pdfFile);
PDFTextStripper pdfStripper = new PDFTextStripper();
//....
pdDoc.close();

答案 1 :(得分:1)

使用PDDocumentCOSDocument实例的close()方法(在两种情况下都调用close对象的COSDocument方法)