声明扫描程序读取system.in

时间:2014-10-07 04:05:45

标签: java java.util.scanner system.in

查看Java教程,似乎在声明扫描程序时必须包装多层对象,例如http://docs.oracle.com/javase/tutorial/essential/io/scanning.html

s = new Scanner(new BufferedReader(new FileReader("xanadu.txt")));

同时包含BufferedReaderFileReader。但是,如果我从System.in阅读,我是否需要这样做是否有任何好处?这两个选项的行为有何不同?

Scanner s = new Scanner(new BufferedReader(new InputStreamReader(
            System.in)));

VS

Scanner s = new Scanner(System.in);

2 个答案:

答案 0 :(得分:1)

缓冲部分肯定是不同的。请在此处阅读有关IO缓冲的更多信息:http://docs.oracle.com/javase/tutorial/essential/io/buffers.html

答案 1 :(得分:1)

差异在于效率。如果使用得当BufferedReader,则可以防止从文件读取的字节转换为字符然后返回。因此建议使用BufferedReader

此外,您可以指定缓冲区大小,非常方便。