Java 在不覆盖的情况下写入现有XML文件
我正在尝试在XML文件中编写一些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");
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给出的答案,或者看看。只有当你想在结尾添加其他内容时,重写文件才有用。好的,我明白你的意思。我试试看。如果我在做这件事时遇到麻烦,你介意我问一下吗?