★求助DOM解析XML时的一个“无效句柄”的异常!★

andrew830314 2008-08-01 09:44:22
public class Dom {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
System.out.println(dbf.getClass().getCanonicalName());
DocumentBuilder db = dbf.newDocumentBuilder();
InputStream is = new FileInputStream(
"E:\\ufaud\\Struts2\\src\\xml01.xml");
System.out.println(is.available());//------------------------1
Document d = db.parse(is);
NodeList list = d.getElementsByTagName("name");
for (int i = 0; i < list.getLength(); i++) {

System.out.println(list.item(i).getTextContent());

}
System.out.println(is.available());//------------------------2
}
}

最后一句is.available()的时候会报异常:
Exception in thread "main" java.io.IOException: 句柄无效。
at java.io.FileInputStream.available(Native Method)
at net.ilkj.xml.dom.Dom.main(Dom.java:28)

很简单的操作,就是DOM解析XML,为啥输入流在传给DOM之前就可以调用Native方法available(),传入之后就不可以了呢?啥是无效的句柄啊?
...全文
98 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
andrew830314 2008-08-01
  • 打赏
  • 举报
回复
问题找到了哦!原因是DOM把这个输入流对象关闭了哦!(*^__^*) 嘻嘻……!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧