★求助DOM解析XML时的一个“无效句柄”的异常!★
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(),传入之后就不可以了呢?啥是无效的句柄啊?