1

XML ファイルのコンテンツを別のファイルにコピーする、STAXを使用した小さなプログラムがあります。ところで、私は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();

何か考えはありますか?

4

2 に答える 2

5
writer.close();

;) 典型的な動作。

于 2013-06-13T15:02:38.050 に答える
1

今日もこれに遭遇しましたが、writer.flush()うまくいきませんでしたwriter.close()。o_o

于 2014-02-12T18:01:27.427 に答える