如何将PrintWriter转换为字符串或写入文件?

2022-09-02 00:10:05

我正在使用JSP生成动态页面,我想将这个动态生成的完整页面保存在文件中作为存档。

在 JSP 中,所有内容都写入PrintWriter out = response.getWriter();

在页面末尾,在向客户端发送响应之前,我想将此页面保存在文件中或缓冲区中作为字符串以供以后处理。

如何保存内容或转换为 ?PrintwriterString


答案 1

要从 的输出中获取字符串,可以通过构造函数将 a 传递给 a:PrintWriterStringWriterPrintWriter

@Test
public void writerTest(){
    StringWriter out    = new StringWriter();
    PrintWriter  writer = new PrintWriter(out);

    // use writer, e.g.:
    writer.print("ABC");
    writer.print("DEF");

    writer.flush(); // flush is really optional here, as Writer calls the empty StringWriter.flush
    String result = out.toString();

    assertEquals("ABCDEF", result);
}

答案 2

为什么不改用StringWriter呢?我认为这应该能够提供你需要的东西。

例如:

StringWriter strOut = new StringWriter();
...
String output = strOut.toString();
System.out.println(output);