我有以下代码段。代码看起来很好,但无法在屏幕上打印Bye
。
import java.io.PrintWriter;
public class PrintWriterTwice {
public static void main(String[] args) {
PrintWriter first = new PrintWriter(System.out);
first.print("Hello");
first.flush();
first.close();
PrintWriter second = new PrintWriter(System.out);
second.print("Bye");
second.flush();
second.close();
}
}
这是程序的输出:
您好
我可以知道为什么会出现这种行为吗?
答案 0 :(得分:3)
在close()
上调用PrintWriter
会关闭基础OutputStream
(在这种情况下为System.out
);所以你没有得到进一步的输出。移除close()
- 或在second
写入后将其移至。
PrintWriter first = new PrintWriter(System.out);
first.print("Hello");
first.flush();
PrintWriter second = new PrintWriter(System.out);
second.print("Bye");
second.flush();
first.close();
second.close();