![](/img/trans.png)
[英]Why is Scanner slower than BufferedReader when reading from input?
[英]Why BufferedReader is faster than Scanner?
我知道使用BufferedReader比使用Scanner更快,因为Scanner读取并解析 Stream 而BufferedReader仅读取 Stream。
但是,我不明白为什么在从BufferedReader读取 Stream 后解析 Stream 时,为什么BufferedReader仍然会更快,这与Scanner所做的基本相同吗? 他们都在读取和解析,那么为什么BufferedReader仍然更快呢?
假设我将整数作为输入:
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int x = Integer.parseInt(br.readLine());
System.out.println(x);
}
这会不会和这个一样:
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
System.out.println(x);
}
与 Scanner 相比, BufferReader具有8KB 字节Buffer 的大缓冲区。 扫描仪有点慢,因为它也需要解析数据。 BufferReader 比 Scanner 快,因为它只读取一个字符 stream
bufferReader 与扫描仪之间的区别
https://www.tutorialspoint.com/difference-between-scanner-and-bufferreader-class-in-java
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.