看看Java教程,看起來你必須在聲明掃描器時包裝多層對象,例如http://docs.oracle.com/javase/tutorial/essential/io/scanning.html聲明掃描器讀取system.in
s = new Scanner(new BufferedReader(new FileReader("xanadu.txt")));
既有BufferedReader
和FileReader
。但是,如果我正在閱讀System.in
,我是否需要/有這樣做的好處嗎?這兩個選項的行爲有何不同?
Scanner s = new Scanner(new BufferedReader(new InputStreamReader(
System.in)));
VS
Scanner s = new Scanner(System.in);
雖然緩衝可能有助於大文件,但我沒有看到使用鍵盤輸入('System.in')的優勢。爲了防止將來出現問題,當爲System.in打開一個'Scanner'時,要麼在代碼的最後(在讀完所有內容後)關閉它,要麼根本不關閉。 – 2014-10-07 04:16:21
System.in也可以使用重定向來自文件 – kichik 2014-10-08 16:27:54