我是stackoverflow的新手,所以希望我正确格式化这个问题!我已经通过网站(和谷歌)搜索我的问题的答案,但无法找到为什么这对我不起作用的原因。
我正在尝试从XMLEventReader中读取一个事件并将其写入XMLEventWriter(简单对吧?)它不会将任何事件输出到文件,甚至只是输出到System.out。任何提示都会很棒=)
public void parse(InputStream is) throws XMLStreamException, Exception {
XMLEventReader reader = null;
try {
XMLInputFactory inputFact = XMLInputFactory.newInstance();
XMLStreamReader streamReader = inputFact.createXMLStreamReader(is);
reader = inputFact.createXMLEventReader(streamReader);
XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(new
FileOutputStream("C:\\temp\\results\\exceltestresults.xml"));
//or System.out
while (reader.hasNext()) {
XMLEvent event = reader.nextEvent();
eventWriter.add(event);
}
...........
当我通过代码调试时,我可以看到在While {}循环中读取的每个事件。
答案 0 :(得分:1)
您错过了eventWriter.close();
while (reader.hasNext()) {
XMLEvent event = reader.nextEvent();
eventWriter.add(event);
}
eventWriter.close();
最好在reader
块中关闭这些资源(streamReader
,eventWriter
和finally
)。