Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不覆盖的情况下写入现有XML文件_Java_Xml_Xmlwriter - Fatal编程技术网

Java 在不覆盖的情况下写入现有XML文件

Java 在不覆盖的情况下写入现有XML文件,java,xml,xmlwriter,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");

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

        }

    }
我能做什么,让我的代码写在最后一行之后?(不覆盖)


谢谢

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

new FileOutputStream(file, true);
第二个参数是一个布尔值,具有真值附加和假值覆盖。默认值为false(您无疑已经发现)


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

重写文件,然后在末尾添加新内容。不能向XML文件添加任何有意义的内容。如果它是一个结构正确的文件,那么所有内容都需要在一个顶级标记中。你到底想完成什么?您能举一个简单的例子说明如何更改现有的XML文件吗?我不需要它完全是XML文件。我只是以XML扩展为例。因为稍后,这些文件将被命名为:something.notxml,我只想知道如何在file@LiverpoolFTW我该怎么做?你知道我可以看的一些例子吗?@EduardoRocha如果你只想在文件末尾添加一些内容,那么看看Aurand给出的答案,或者看看。只有当你想在结尾添加其他内容时,重写文件才有用。好的,我明白你的意思。我试试看。如果我在做这件事时遇到麻烦,你介意我问一下吗?