我通过互联网研究了这个错误。我找出了这个错误导致我的原因。但在我的特殊情况下它是不同的。我不知道如何解决它。
我们的系统每个特定时间都会导出一些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;
fatalError:捕获异常org.xml.sax.SAXParseException; lineNumber:1; columnNumber:1;文件过早结束。在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(未知 来源)at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl $ PrologDriver.next(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(未知 来源)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(未知 来源)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知 来源)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知 来源)at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(未知 来源)at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(未知 来源)at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(未知 来自)javax.xml.parsers.DocumentBuilder.parse(未知来源)