我收到此异常“文档的第-1行出错:文件过早结束。嵌套异常:文件过早结束。”在使用SAXReader获取文件路径和读取文件的行之间
try {
LOG.info(" start parsing ");
SAXReader reader = new SAXReader();
File myfile = new File(fileName);
if (myfile.exists()) {
document = (Document) reader.read(fileName); // getting the exception here
}
else {
LOG.error(fileName + " does not exist");
new ExceptionErrorSupport(fileName,fileName+" does not exist","ECMException",true,CONTROLLER_CONSTANTS.ECM_ERROR_DIR);
}
} catch (DocumentException e) {
e.printStackTrace();
}
似乎File()尚未关闭,然后SAXReader已经读取文件,但我找不到关闭File()的方法,请参阅Why java.io.File doesn't have a close() method?。
有没有办法避免这种例外?
感谢。
答案 0 :(得分:0)
似乎
File()
尚未关闭
不,不。 File()
没有打开任何东西,所以没有什么可以关闭的。即使这样做也不会导致这种异常。你的推理没有意义。
如果您的文件过早结束,那是因为您的输入格式不正确。
答案 1 :(得分:0)
这可能是因为您正在阅读的XML文件未正确形成。
这可能意味着缺少结束标记,或者甚至在找不到文件结束符时。