Java中的printWriter

Java中的printWriter,java,printwriter,Java,Printwriter,我有一个关于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);

我有一个关于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.close()命令时;它一直在运行rest程序,所以我想问out.close()是什么意思?我想这只是意味着停止为输出写入,我想这与我在新的PrintWriter(…)中输入的参数有关。

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

您读了吗?因为循环没有任何终止点要停止。谢谢Steinar,这是否意味着close()方法将终止我放入printwriter括号-->new printwriter(…)中的内容,因此如果我将文件放入括号中,close()将终止此文件中的输出,对吗?是的,文件流也将被关闭。