Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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 使用JDOM将数据附加到现有文件_Java_Xml_Jdom - Fatal编程技术网

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

Java 使用JDOM将数据附加到现有文件,java,xml,jdom,Java,Xml,Jdom,我正在使用下面的代码。然而,当我运行代码时,我想在同一个TXT文件中一个接一个地添加新的XML。这是否可以使用JDOM实现。请帮帮我 输出(doc,新的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 o

我正在使用下面的代码。然而,当我运行代码时,我想在同一个TXT文件中一个接一个地添加新的XML。这是否可以使用JDOM实现。请帮帮我

输出(doc,新的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类作弊。看见

如果commons io不适用于您的应用程序或不适用于您的应用程序,请编写您自己的append string to file方法