Dee*_*pak 9 java stax java-7 try-with-resources
我期望能发现XMLStreamReader是AutoCloseable在Java 7中.然而,事实并非如此.是否存在技术原因导致StAX读取器/写入器接口未被(或不应该)改进以实现AutoCloseable?他们已经有了密切的方法,其意图与密切方法没有区别AutoCloseable.
如果你仔细观察以下close()方法AutoCloseable:
关闭此资源,放弃任何底层资源.在try-with-resources语句管理的对象上自动调用此方法.
关闭此流并释放与其关联的所有系统资源.如果流已经关闭,则调用此方法无效.
释放与此Reader相关的任何资源.此方法不会关闭基础输入源.
实际上,输入源由Reader实现Closeable接口的管理.所以读者可以在try-with-ressource中关闭.
例如 :
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader reader = null;
try (FileReader fr = new FileReader("file.xml")) { //Will close the FileReader
reader = factory.createXMLStreamReader(fr);
reader.close();
}
catch (XMLStreamException ex) {
if(reader!=null)try {
reader.close();
} catch (XMLStreamException ex1) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex1);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |