我正在阅读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的错误。
答案 0 :(得分:2)
您使用过时的方式打开文件。这是正确的方法(省略异常处理):
File pdfFile = new File("ffile.pdf");
PDDocument pdDoc = PDDocument.load(pdfFile);
PDFTextStripper pdfStripper = new PDFTextStripper();
//....
pdDoc.close();
答案 1 :(得分:1)
使用PDDocument
或COSDocument
实例的close()
方法(在两种情况下都调用close
对象的COSDocument
方法)