0

我正在尝试在 XML 文件中编写一些 XML 行。但是,我只能在文件不存在的情况下这样做,因为如果它存在,我将覆盖信息。

这是我的代码:

public void writeToXMLSimulation() throws IOException {
    File f = new File("Simulation_" + pt.ipp.isep.gecad.masgrip.MASGriP_GUI.getContainerNameTxt().getText() + "_Details.xml");
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setEncoding("UTF-8");
    XMLWriter xmlWriter = null;
    if (!f.exists()) {

        try {
            xmlWriter = new XMLWriter(new OutputStreamWriter(
                    new FileOutputStream(f), "UTF8"),
                    format);
            xmlWriter.write(configs.XMLwriterDOM4J.createXMLDocumentForSimulations(jLabelAL, jTextFieldAL, id));
        } finally {
            if (xmlWriter != null) {
                xmlWriter.flush();
                xmlWriter.close();
            }
        }

    } else {

        try {
            //I NEED SOMETHING HERE TO GET ME TO THE LAST LINE OF FILE

    xmlWriter.write(
configs.XMLwriterDOM4J.createXMLDocumentForSimulations(
jLabelAL, jTextFieldAL, id));
            } finally {
                if (xmlWriter != null) {
                    xmlWriter.flush();
                    xmlWriter.close();
                }
            }

        }

    }

我该怎么做才能让我的代码写在最后一行之后?(不覆盖)

谢谢

4

1 回答 1

1

在一般情况下,您可以使用以下命令以附加模式写入文件:

new FileOutputStream(file, true);

第二个参数是一个布尔值,真正的意思是追加,错误的意思是覆盖。默认值为 false(正如您毫无疑问地发现的那样)。

话虽如此,将数据附加到 XML 文件的末尾可能没有意义。最好使用 XML 阅读器将 XML 文件读入Document对象,向该对象添加元素,然后将该对象写回磁盘。

于 2013-06-03T16:42:19.190 回答