2013-10-10 44 views
1

我有一個關於到PrintWriter的問題,請參見下面的代碼:的PrintWriter在Java中

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()的命令;它繼續運行其餘的程序,所以我想問一下out.close()是什麼意思?我認爲這只是意味着停止寫輸出,我想這與我在新的PrintWriter中放入的參數有關(...)

+0

您是否閱讀過[documentation](http://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html#close())? – Maroun

+0

因爲循環沒有任何終止點停止。 –

回答

2

PrintWriter.close()也將關閉底層流,即System.out。這實際上意味着任何後續輸出到System.out都將被忽略。

+0

謝謝Steinar,它是否意味着close()方法終止了我放入printwritter支架 - > new printwriter(...)的內容,所以如果我將一個文件放入括號中,close()將會在這個文件中終止輸出,對吧? –

+0

是的,文件流也將被關閉。 – Steinar