XMLEventWriter不写入输出流

时间:2014-07-07 18:49:14

标签: java xml stax

我是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 {}循环中读取的每个事件。

1 个答案:

答案 0 :(得分:1)

您错过了eventWriter.close();

    while (reader.hasNext()) {
      XMLEvent event = reader.nextEvent();
      eventWriter.add(event);
    }
    eventWriter.close();

最好在reader块中关闭这些资源(streamReadereventWriterfinally)。