簡體   English   中英

為什么 BufferedReader 比 Scanner 快?

[英]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);

   }
  1. 那么我對這是如何工作的理解正確嗎?
  2. BufferedReader更大的緩沖區大小是否也有幫助?

與 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM