【问题标题】:STAX XMLStreamWriter doesn't write with small filesSTAX XMLStreamWriter 不使用小文件写入
【发布时间】:2013-06-13 14:52:33
【问题描述】:

我有一个使用 STAX 的小程序,它将 XML 文件的内容复制到另一个文件。 顺便说一句,我发现了 XMLStreamWriter 的一个神秘问题。

当我尝试编写许多元素时,写作会奏效。但是当我尝试编写几个元素时,它不起作用(文件为空)。

例如,此代码有效(3000 个元素):

    XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
    XMLStreamWriter writer = outputFactory.createXMLStreamWriter(new FileOutputStream("toto.xml"));

    writer.writeStartDocument();
    for(int i = 0; i < 3000; ++i) {
        writer.writeStartElement("toto");
        writer.writeEndElement();
    }
    writer.writeEndDocument();

而且这段代码不起作用(50 个元素):

    XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
    XMLStreamWriter writer = outputFactory.createXMLStreamWriter(new FileOutputStream("toto.xml"));

    writer.writeStartDocument();
    for(int i = 0; i < 50; ++i) {
        writer.writeStartElement("toto");
        writer.writeEndElement();
    }
    writer.writeEndDocument();

你有什么想法吗?

【问题讨论】:

    标签: java xml stax


    【解决方案1】:
    writer.close();
    

    ;) 典型行为。

    【讨论】:

    • 我错过了。十分感谢。 writer.flush() 也可以是一个解决方案,但 close() 似乎更干净。
    【解决方案2】:

    我今天也遇到了,不过writer.flush()没用,只有writer.close()o_o

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      相关资源
      最近更新 更多