两个PrintWriter对象只打印一次

时间:2017-12-01 03:23:04

标签: java printwriter

我有以下代码段。代码看起来很好,但无法在屏幕上打印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();
  }
}

这是程序的输出:

  

您好

我可以知道为什么会出现这种行为吗?

1 个答案:

答案 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();