Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง Scanner และ BufferedReader ใน Java

Scanner และ BufferedReader ใช้รับ input จากภายนอก Scanner ใช้เมื่อรู้ว่า input เป็น string หรือ primitive types BufferedReader ใช้อ่าน text จาก character streams พร้อม buffer เพื่อประสิทธิภาพ

ลำดับ หัวข้อ Scanner Class BufferedReader Class
1 Synchronous ไม่ใช่ synchronized ใช้ single-threaded เท่านั้น Synchronized ใช้ใน multi-threaded ได้
2 Buffer Memory Buffer เล็ก 1 KB char buffer Buffer ใหญ่ 8 KB byte buffer
3 Processing Speed ช้ากว่า (ต้อง parse data) เร็วกว่า (อ่าน character stream อย่างเดียว)
4 Methods nextInt(), nextShort(), nextLine() ฯลฯ readLine(), parseInt(), parseShort() ฯลฯ
5 Read Line nextLine() readLine()

ตัวอย่าง

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class JavaTester {
    public static void main(String args[]) throws NumberFormatException, IOException {
        BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter an number:");
        int a = Integer.parseInt(bufferReader.readLine());
        System.out.printf("You entered: " + a);
        
        Scanner scanner = new Scanner(System.in);
        System.out.println("\nEnter an number:");
        a = scanner.nextInt();
        System.out.printf("You entered: " + a);
    }
}

ผลลัพธ์

Enter an number: 1
You entered: 1
Enter an number: 2
You entered: 2