java – XMLStreamReader没有关闭打开的xml文件
发布时间:2020-12-14 05:39:45 所属栏目:Java 来源:网络整理
导读:要使用 XMLStreamReader我正在初始化它像 – XMLInputFactory f = XMLInputFactory.newInstance();XMLStreamReader reader = f.createXMLStreamReader(new FileReader( "somefile.xml")); 迭代它像 – if (reader.hasNext()) { reader.next(); // do somethi
要使用
XMLStreamReader我正在初始化它像 –
XMLInputFactory f = XMLInputFactory.newInstance(); XMLStreamReader reader = f.createXMLStreamReader(new FileReader( "somefile.xml")); 迭代它像 – if (reader.hasNext()) { reader.next(); // do something with xml data } 最后关闭它像 – reader.close(); 这看起来是正常的流程,但我看到一些奇怪的行为.即使在关闭阅读器之后,OS也不允许我删除/移动xml文件,除非我退出java程序.在Win2k8服务器上运行时,我收到错误消息,说java.exe正在使用此xml文件. 所以我有几个问题 – >我是否需要明确关闭每个FileReader的关闭? 看看XMLStreamReader的close()文档,我得到以下内容 – “释放与此Reader相关的任何资源.此方法不会关闭底层输入源.” “底层输入源”是什么意思? 解决方法
文档中提到的基础输入源正是您应该关闭的内容.将FileReader放入局部变量以便能够关闭它:
XMLInputFactory f = XMLInputFactory.newInstance(); FileReader fr = new FileReader("somefile.xml"); XMLStreamReader reader = f.createXMLStreamReader(fr); // process xml reader.close(); fr.close(); //suggest using apache commons IOUtils.closeQuietly(fr); this way you // don't have to deal with exceptions if you don't want (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |