查看 Java 教程,在声明扫描器时似乎必须包装多层对象,例如http://docs.oracle.com/javase/tutorial/essential/io/scanning.html
s = new Scanner(new BufferedReader(new FileReader("xanadu.txt")));
同时具有BufferedReader
和FileReader
。但是,如果我正在从 System.in
读取内容,我是否需要这样做/这样做有什么好处吗?这两个选项的行为是否不同?
Scanner s = new Scanner(new BufferedReader(new InputStreamReader(
System.in)));
对比
Scanner s = new Scanner(System.in);
最佳答案
区别在于效率。如果使用得当,BufferedReader
可以防止从文件读取的字节转换为字符然后返回。因此建议使用 BufferedReader。
此外,您还可以指定缓冲区大小,这非常方便。
关于java - 声明扫描仪读取 system.in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26228386/