【问题标题】:printWriter in JavaJava 中的 printWriter
【发布时间】:2013-10-10 15:06:51
【问题描述】:

我有一个关于 printWriter 的问题,请看下面的代码:

PrintWriter out = new PrintWriter(System.out);
Scanner n = new Scanner(System.in);

while (n.hasNext()) {
    String str = n.next();
    if (str.equals("m")) {
        break;
    } else {
        out.printf("%s", str);
        out.print(" ");
    }   
}
n.close();
// out.close();
System.out.println("input is successful");

当我通过键盘输入内容时,它会在屏幕上输出我输入的内容,但它没有处理程序的其余部分,这意味着它没有打印“输入成功”,但是,当我删除 out 的命令时。关闭();它一直在运行其余程序,所以我想问一下 out.close() 是什么意思?我以为它只是意味着停止写入输出,我想这与我放入 new PrintWriter(...) 的参数有关

【问题讨论】:

  • 你读过documentation吗?
  • 因为循环没有任何终止点可以停止。

标签: java printwriter


【解决方案1】:

PrintWriter.close() 也将关闭底层流,即System.out。这实际上意味着System.out 的任何后续输出都将被忽略。

【讨论】:

  • 谢谢 Steinar,这是否意味着 close() 方法会终止我放入 printwritter 括号中的内容-->new printwriter(...),所以如果我将文件放入括号,close() 会终止这个文件中的输出,对吧?
  • 是的,文件流也会被关闭。
猜你喜欢
  • 2011-08-11
  • 2015-12-24
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多