我在互联网上研究了这个错误。我找出了这个错误导致我的原因。但在我的特殊情况下,情况有所不同。我不知道如何解决它。
我们的系统每次都会导出一些 xml。所以我认为当它生成时,我的程序在那个时间运行,然后它会导致这个错误。
我该如何解决这个问题?
FileInputStream fis=null;
File fXmlFile = new File(file);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
dBuilder.setErrorHandler(new ErrorHandler() {
@Override
public void warning(SAXParseException exception) throws SAXException {
System.err.println("warning: caught exception");
exception.printStackTrace(System.err);
}
@Override
public void fatalError(SAXParseException exception) throws SAXException {
System.err.println("fatalError: caught exception");
exception.printStackTrace(System.err);
}
@Override
public void error(SAXParseException exception) throws SAXException {
System.err.println("error: caught exception");
exception.printStackTrace(System.err);
}
});
fis = new FileInputStream(fXmlFile);
org.w3c.dom.Document doc = dBuilder.parse(fis);
fis.close();
doc.getDocumentElement().normalize();
return doc;
致命错误:捕获异常 org.xml.sax.SAXParseException;行号:1;列号:1;文件过早结束。在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source) 在 com.sun.org .apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal .impl.XMLScanner.reportFatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl .next(未知来源),位于 com.sun.org.apache.xerces.internal.impl。