org.xml.sax.SAXParseException: Content is not allowed in trailing section
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
org.xml.sax.SAXParseException: Content is not allowed in trailing section 博客分類: 異常 ?總結(jié)一下,這個(gè)問題主要出現(xiàn)的原因有兩點(diǎn)。
?
1、XML內(nèi)容不正確,比如多個(gè)空格,換行等等。需要仔細(xì)排查;
2、使用Stream讀取流文件不正確,詳細(xì)如下:
?
讀寫文件時(shí),一般采用的是每次從inputStream中read 一個(gè)有固定大小的byte array時(shí),這時(shí)候在
?
byte[] array = new byte[1024];
?
BufferedInputStream buffInput = new BufferedInputStream(inputStream);
FileOutputStream fileOS = new FileOutputStream(targetFile);
BufferedOutputStream buffOS = new BufferedOutputStream(fileOS);
int word = 0;
while ((word = buffInput.read(array)) != -1){
buffOS.write(array);
}
?
?
上面的寫法,如果最后一次read到array中不足1024的時(shí)候,前一次read的byte同樣會(huì)出現(xiàn)在byte[]中,從而導(dǎo)致XML解析失敗。因此可以采用下面的方法:
?
?
BufferedInputStream buffInput = new BufferedInputStream(inputStream);
FileOutputStream fileOS = new FileOutputStream(targetFile);
BufferedOutputStream buffOS = new BufferedOutputStream(fileOS);
int word = 0;
while ((word = buffInput.read()) != -1){
buffOS.write(word);
}
轉(zhuǎn)載于:https://my.oschina.net/xiaominmin/blog/1599497
總結(jié)
以上是生活随笔為你收集整理的org.xml.sax.SAXParseException: Content is not allowed in trailing section的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Kubernetes Pod中使用Se
- 下一篇: python的高级特性:切片,迭代,列表