java 文件提前结束_java – 为什么我得到这个错误提前结束文件?

我正在尝试解析和回应XML,但我失败了。我最初想了

那么xml只是没有在响应中返回,所以我用下面的代码制作了直接链接到我的xml文件在线。我可以打印XML到屏幕没有任何问题。但是当我调用我的解析方法时,我得到过早的文件结束..

如果我直接传递URL,它可以工作:

> builder.parse(“Http://www.example.com/test.xml”);

但是当我传递一个InputStream时失败:

> builder.parse(connection.getInputStream());

try {

URL url = new URL(xml);

URLConnection uc = url.openConnection();

HttpURLConnection connection = (HttpURLConnection )uc;

connection.setDoInput(true);

connection.setDoOutput(true);

InputStream instream;

InputSource source;

//get XML from InputStream

if(connection.getResponseCode()>= 200){

connection.connect();

instream = connection.getInputStream();

parseDoc(instream);

}

else{

instream = connection.getErrorStream();

}

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SAXException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

static void parseDoc(InputStream instream)throws ParserConfigurationException,

SAXException,IOException

BufferedReader buff_read = new BufferedReader(new InputStreamReader(instream,"UTF-8"));

String inputLine = null;

while((inputLine = buff_read.readLine())!= null){

System.out.println(inputLine);

}

DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();

factory.isIgnoringElementContentWhitespace();

DocumentBuilder builder = factory.newDocumentBuilder();

Document doc = builder.parse(instream);

}

错误我得到:

[Fatal Error] :1:1: Premature end of file.

org.xml.sax.SAXParseException: Premature end of file.

at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)

at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)

at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)

at com.ameba.api.network.MainApp.parseDoc(MainApp.java:78)

at com.ameba.api.network.MainApp.main(MainApp.java:41)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值