我正在尝试在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();
}
}
}
}
我可以做什么,让我的代码在最后一行之后写? (没有覆盖)
由于
答案 0 :(得分:1)
在一般情况下,您可以使用以下方式以追加模式写入文件:
new FileOutputStream(file, true);
第二个参数是一个布尔值,其中true表示附加,false表示覆盖。默认值为false(毫无疑问,您已发现)。
话虽如此,将数据附加到XML文件的末尾可能没有意义。使用XML阅读器将XML文件读入Document
对象,向该对象添加元素,然后将该对象写回磁盘会更好。