java - 声明扫描仪读取 system.in

标签 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)));

对比

Scanner s = new Scanner(System.in);

最佳答案

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

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

关于java - 声明扫描仪读取 system.in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26228386/

相关文章:

java - 在java中实时将IO Process的值传递给另一个类

java - 如何从文本文件中读取,从整数中分割字符串,然后将整数传递到数组列表中?

java - 设置 System.in 以从 JTextField 读取

java - 循环读取字符

java - 在堆栈 Java 中获取调用

java - 如何跟踪每月和每年的数据数量?

java - 在 JSF Converter 类的 getAsObject() 和 getAsString() 方法中转换什么值

当输入按特定顺序时 JAVA : Why does the Scanner work only,

java - 如何从字符串中解析int

java 使用扫描仪进行 I/O 和文件重定向