java追加到文件

我用谷歌搜索了一段时间,但似乎无法找到它,它应该很容易。 我想将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(); 

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

  new FileOutputStream(f, true /* append */); 

这里有几个选择。

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

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

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

显而易见的答案是将StreamResult与Writer一起使用,并在关闭之前将您的角色附加到编写器。

您似乎正在尝试重新打开该文件以附加该字符。 FileOutputStream构造函数的两个参数forms包括append标志。

我不知道这个Transformer课程。 但是我看到你的编写器/文件变量与你的xformer / source / result变量之间没有任何联系……看起来你只写了一个换行符。
除非你省略了一些必要的部分。

请注意,请确保使用与xml序列号相同的字符编码来编写换行符,否则您的文件将被破坏。