gpt4 book ai didi

java - 重写而不是附加到 XML 文件

转载 作者:行者123 更新时间:2023-12-01 18:39:03 24 4
gpt4 key购买 nike

我使用下面的代码来写入 XML 文件,但每次运行此函数时,信息都会附加到 XML 文件中,而不是重写。

我应该更改什么才能重写文件而不是每次都附加信息?

这是函数:

public void write2file(LinkedList<Customer> customers, File ff) {
try {

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse(ff);
Element root = document.getDocumentElement();

// Root Element
Element rootElement = document.getDocumentElement();

for (Customer i : customers) {
// server elements
Element new_marker = document.createElement("Marker");
rootElement.appendChild(new_marker);

Element name = document.createElement("title");
name.appendChild(document.createTextNode(i.getTitle()));
new_marker.appendChild(name);

Element loc = document.createElement("site_location");
loc.appendChild(document.createTextNode(i.getLocation()));
new_marker.appendChild(loc);

Element latitude = document.createElement("latitude");
latitude.appendChild(document.createTextNode(i.getLatitude()));
new_marker.appendChild(latitude);

Element longitude = document.createElement("longitude");
longitude.appendChild(document.createTextNode(i.getLongitude()));
new_marker.appendChild(longitude);

Element status = document.createElement("status");
status.appendChild(document.createTextNode(i.getStatus()));
new_marker.appendChild(status);

root.appendChild(new_marker);
}

DOMSource source = new DOMSource(document);

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
StreamResult result = new StreamResult(ff);
transformer.transform(source, result);

}
catch (SAXException e) {
e.printStackTrace();}
catch (IOException e) {
e.printStackTrace();}
catch (ParserConfigurationException pce) {
pce.printStackTrace();}
catch (TransformerException tfe) {
tfe.printStackTrace();}
}

最佳答案

不要直接给出文件作为 StreamResult 的参数,而是尝试给出 FileOutputStream,它可以接受构造函数参数是否追加。

new StreamResult(new FileOutputStream(ff, false));

关于java - 重写而不是附加到 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20686800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com