编写现有的XML文件而不覆盖

时间:2013-06-03 16:29:56

标签: java xml xmlwriter

我正在尝试在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();
                }
            }

        }

    }

我可以做什么,让我的代码在最后一行之后写? (没有覆盖)

由于

1 个答案:

答案 0 :(得分:1)

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

new FileOutputStream(file, true);

第二个参数是一个布尔值,其中true表示附加,false表示覆盖。默认值为false(毫无疑问,您已发现)。

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