1

查看 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)));

对比

Scanner s = new Scanner(System.in);
4

2 回答 2

1

区别在于效率。如果使用得当 BufferedReader,可以防止从文件中读取的字节转换为字符然后返回。所以BufferedReader推荐使用。

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

于 2014-10-07T04:15:33.487 回答
1

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

于 2014-10-07T04:10:26.927 回答