Discuss / Java / PrintWriter

PrintWriter

Topic source

import java.io.*;public class Main { public static void main(String[] args) { StringWriter buffer = new StringWriter(); try (PrintWriter pw = new PrintWriter(buffer)) { pw.println("Hello"); pw.println(12345); pw.println(true); } System.out.println(buffer.toString()); }}

为什么最后还得借助 System.out.println 输出 。

`pw.println()` 方法并不能直接将输出显示在控制台上。它将输出写入了 `StringWriter` 对象 `buffer` 中的字符串缓冲区中。

如果你想直接将输出显示在控制台上,你可以修改代码,将 `PrintWriter` 的构造函数中的参数改为 `System.out`,如下所示:

```java

try (PrintWriter pw = new PrintWriter(System.out)) {

    // ...

}

```

这样,`pw.println()` 方法将直接将输出显示在控制台上,不再写入 `StringWriter`。

但是请注意,使用 `System.out` 直接进行输出的话,你将无法将输出保存到字符串缓冲区中进行后续操作,因为它直接输出到控制台而不是写入缓冲区中。


  • 1

Reply