File和SAXReader之间的文件过早结束

时间:2014-12-18 09:56:09

标签: java

我收到此异常“文档的第-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?

有没有办法避免这种例外?

感谢。

2 个答案:

答案 0 :(得分:0)

  

似乎File()尚未关闭

不,不。 File()没有打开任何东西,所以没有什么可以关闭的。即使这样做也不会导致这种异常。你的推理没有意义。

如果您的文件过早结束,那是因为您的输入格式不正确。

答案 1 :(得分:0)

这可能是因为您正在阅读的XML文件未正确形成。

这可能意味着缺少结束标记,或者甚至在找不到文件结束符时。