【问题标题】:Write an existing XML file without overwritting写入现有 XML 文件而不覆盖
【发布时间】:2013-06-03 16:29:55
【问题描述】:

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

        }

    }

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

谢谢

【问题讨论】:

  • 重写文件,然后在最后添加新的东西。
  • 您不能将任何有意义的内容附加到 XML 文件中。如果它是一个结构正确的文件,所有内容都需要在一个顶级标签内。你真正想要完成什么?你能举一个简短的例子说明如何更改现有的 XML 文件吗?
  • 我不需要它完全是一个 XML 文件。我只是以 XML 扩展为例。因为,稍后,文件将被命名为:something.notxml 我只想知道文件最后一行之后如何写
  • @LiverpoolFTW 我该怎么做?你知道一些我可以看的例子吗?
  • @EduardoRocha 如果您只想在文件末尾添加一些内容,请查看 Aurand 给出的答案,或查看 stackoverflow.com/questions/9961292/…。仅当您想在最后添加其他内容时,重写文件才有用。

标签: java xml xmlwriter


【解决方案1】:

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

new FileOutputStream(file, true);

第二个参数是一个布尔值,真意为追加,假意为覆盖。默认值为 false(您肯定已经发现)。

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

【讨论】:

  • 好的,我明白你的意思了。我会试试的。你介意我在这里问一下,如果我这样做有什么问题吗?
猜你喜欢
  • 2013-11-04
  • 1970-01-01
  • 2023-03-28
  • 2012-04-24
  • 2011-05-08
  • 2012-06-18
  • 2012-04-15
  • 2011-02-18
  • 2015-01-19
相关资源
最近更新 更多