java - 从 StringWriter 写入 txt 文件

标签 java file-io stringwriter

我有一个 StringWriter 变量 sw,它由 FreeMarker 模板填充。填充 sw 后,如何将其打印到文本文件?

我有一个 for 循环如下:

for(2 times)
{
    template.process(data, sw);
    out.println(sw.toString());
}

现在,我只是输出到屏幕上。我如何为文件执行此操作?我想在每个循环中,我的 sw 都会发生变化,但我希望每个循环中的数据都附加到文件中。

编辑: 我尝试了下面的代码。当它运行时,它确实显示 file.txt 已被更改,但当它重新加载时,文件中仍然没有任何内容。

sw.append("CheckText");
PrintWriter out = new PrintWriter("file.txt");
out.println(sw.toString());

最佳答案

怎么样

FileWriter fw = new FileWriter("file.txt");
StringWriter sw = new StringWriter();
sw.write("some content...");
fw.write(sw.toString());
fw.close();

您还可以考虑使用一个输出流,您可以直接将其传递给 template.process(data, os); 而不是先写入 StringWriter,然后再写入文件。

查看 template.process(...) 的 API 文档,了解是否有这样的工具可用。

回复2

template.process(Object, Writer) 也可以将 FileWriter 对象作为参数,它是 Writer 的子类,所以你可能可以这样做:

FileWriter fw = new FileWriter("file.txt");    
for(2 times)
{
    template.process(data, fw);
}
fw.close();

关于java - 从 StringWriter 写入 txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883294/

相关文章:

java - 配置 AsyncTaskExecutor 时,spring boot 应用程序消耗所有 cpu

javascript - netty-socketio : client did not complete upgrade - closing transport

java:需要提高校验和计算的性能

C# 紧凑框架 - 带有 XmlSerializer.Serialize 的 OutOfMemoryException

java - 什么是 JSP 标签?

java - 使用 Spring JMS 的 Azure 多次接收相同的消息,并将消息移至 DLQ

C 文件读取,空白/空行

Python——读取文件并确定最低分数和人

java - 使用 JAXB 将 XML 子内部节点从 XML 拉到 Java 对象

java - 使用 BufferedWriter 写入字符串