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` 直接进行输出的话,你将无法将输出保存到字符串缓冲区中进行后续操作,因为它直接输出到控制台而不是写入缓冲区中。
Sign in to make a reply
小丑竟是我自己
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` 直接进行输出的话,你将无法将输出保存到字符串缓冲区中进行后续操作,因为它直接输出到控制台而不是写入缓冲区中。