[英]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.