我正确使用XMLStreamWriter类吗?我没有真正看到它提供的简单FileWriter

时间:2014-03-25 17:57:01

标签: java xml javax.xml

所以我的代码很简单,它创建了我想要它创建的东西,但我不知道我是否真的看到使用javax.xml.stream包的任何好处。

我的要求是否过于基本无法真正利用课程?我看到的唯一真正的好处是writer.EndElement()writer.EndDocument()正确关闭了标签,但是我不知道如何创建新的行或标签(也就是正确的格式),而无需手动编写它们。在下面做了。

    public void WriteUserInfo(String username, String password) 
            throws FileNotFoundException, XMLStreamException {

        outputStream = new FileOutputStream(getXmlFile());
        factory = XMLOutputFactory.newInstance();
        writer = factory.createXMLStreamWriter(outputStream);
        writer.writeStartDocument(XMLTAG);
        writer.writeCharacters("\n");
        writer.writeStartElement(USER);
        writer.writeCharacters("\n\t");
        writer.writeStartElement(USERNAME);
        writer.writeCharacters(username);
        writer.writeEndElement();
        writer.writeCharacters("\n\t");
        writer.writeStartElement(PASSWORD);
        writer.writeCharacters(password);
        writer.writeEndElement();
        writer.writeCharacters("\n");
        writer.writeEndDocument();
        writer.close();
    }

1 个答案:

答案 0 :(得分:0)

考虑使用Saxon的XMLStreamWriter接口实现。这提供了广泛的序列化选项,包括自动缩进(以及XSLT xsl:output中提供的所有其他选项)。您可以通过s9api Serializer类获得此功能。