gpt4 book ai didi

java - 使用 JDOM 将数据附加到现有文件

转载 作者:行者123 更新时间:2023-12-01 15:10:33 24 4
gpt4 key购买 nike

我正在使用下面的代码。然而,当我运行代码时,我想将新的 XML 附加到同一个 TXT 文件中,一个在另一个下面。使用 JDOM 可以吗?请帮助我..

xmlOutput.output(doc, new FileWriter("c:\updated.txt"));是需要修改的吗?

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

public class Replacer {
public static void main(String[] args) {
try {

SAXBuilder builder = new SAXBuilder();
File xmlFile = new File("c:\\file.xml");
String temp = "1234567";

Document doc = (Document) builder.build(xmlFile);
Element rootNode = doc.getRootElement();

System.out.println("Root Node is --> "+rootNode);

Element ShipmentLines = rootNode.getChild("ShipmentLines");

Element ShipmentLine = ShipmentLines.getChild("ShipmentLine");

Element Containers = rootNode.getChild("Containers");

Element Container = Containers.getChild("Container");


ShipmentLine.getAttribute("OrderNo").setValue(temp);


Container.getAttribute("ContainerScm").setValue(temp);

XMLOutputter xmlOutput = new XMLOutputter();

xmlOutput.setFormat(Format.getPrettyFormat());
xmlOutput.output(doc, new FileWriter("c:\\updated.txt"));

} catch (IOException io) {
io.printStackTrace();
} catch (JDOMException e) {
e.printStackTrace();
}
}
}

最佳答案

JDOM 不直接支持追加到现有文件,但它只需要少量的额外代码。只需将输出写入 StringWriter,获取字符串,然后将字符串附加到现有文件中。一种可能的实现:

XMLOutputter xmlOutput = new XMLOutputter();
xmlOutput.setFormat(Format.getPrettyFormat());
StringWriter out = new StringWriter();
xmlOutput.output(doc, out);
FileUtils.writeStringToFile(new File("c:\\updated.txt"), out.toString(), true);

我在这里使用 commons-io FileUtils 类进行作弊。看 Append data into a file using Apache Commons I/O

如果 commons-io 对于您的应用不可用或不实用,请编写您自己的追加字符串到文件方法。

关于java - 使用 JDOM 将数据附加到现有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12412668/

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