编程语言
首页 > 编程语言> > java-JDOMParseException:第-1行错误:文件的结尾过早

java-JDOMParseException:第-1行错误:文件的结尾过早

作者:互联网

使用JDOM的SAXBuilder的build方法读取InputStream时,出现了该异常:

InputStream bais = p_sendXML.getXml().getInputStream();
File myFile = new File(System.getProperty("java.io.tmpdir"), PREFIX+p_sendXML.getSessionId()+".xml");
IOUtils.copy(bais, new FileOutputStream(myFile));
LOGGER.debug("File save in: "+myFile.getAbsolutePath());
SAXBuilder builder = new SAXBuilder();
Document xmlDoc = builder.build(bais);

正确创建了File,并且其中的XML有效,因此我不应获取此异常.如果您想知道的话,XML文件的末尾会有一个新行.

解决方法:

当您执行IOUtils.copy(bais,new FileOutputStream(myFile));时,您已经“用尽了” bais.您已将bais的内容复制到文件中,现在bais为“空”.您将需要:

>以某种方式获取bais的副本,然后再将其写入磁盘
>通过JDOM直接解析它,并使用JDOM将XML写入磁盘(XMLOutputter)
>使JDOM解析文件(不是bais).

标签:jdom,xml,java
来源: https://codeday.me/bug/20191029/1961854.html