看看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