我有一个使用 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();
你有什么想法吗?
答案 0 :(得分:3)
writer.close();
;)典型行为。
答案 1 :(得分:1)
我今天也遇到过这种情况,但writer.flush()
无效,只有writer.close()
o_o