java追加到文件

Ada*_*man 3 java xml xslt jaxp transformer-model

我用谷歌搜索了一段时间,但似乎无法找到它,它应该很容易.我想将CR附加到我用Transformer创建的XML文件的末尾.有没有办法做到这一点>

我尝试了以下但这导致了一个空白文件?


Transformer xformer = TransformerFactory.newInstance().newTransformer();
xformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "file:///ReportWiz.dtd");
xformer.transform(source, result);
OutputStream writer = new FileOutputStream(file);
Byte b = '\n';
writer.write(b);
writer.close();
Run Code Online (Sandbox Code Playgroud)

Mar*_*ouf 9

简单...只需添加追加选项:

    new FileOutputStream(f, true /* append */);
Run Code Online (Sandbox Code Playgroud)


eri*_*son 5

这里有几个选择.

我假设您的结果是StreamResult您正在创建的,String指定目标文件路径.你可以考虑打开一个FileOutputStream自己,然后StreamResult用它来构建你.然后,当变换器完成后,附加行终止符,刷新并关闭流.在没有限制的情况下,我会使用这种方法.

如果要重新打开文件,如问题所示,则需要使用带有FileOutputStream可选append参数的构造函数.将其设置为true以避免破坏刚刚完成的转换的结果.

您还可以探索indent在转换中设置输出属性,或直接在模板中包含必要的行终止符.