কম্পিউটার টিউটোরিয়াল

জাভাতে Scanner এবং BufferedReader ক্লাসের পার্থক্য

Scanner এবং BufferedReader উভয় ক্লাসই এক্সটার্নাল সিস্টেম থেকে ইনপুট পড়তে ব্যবহৃত হয়। Scanner সাধারণত তখন ব্যবহৃত হয় যখন ইনপুট স্ট্রিং বা প্রিমিটিভ টাইপের হয়, আর BufferedReader ক্যারেক্টার স্ট্রিম থেকে টেক্সট পড়তে ব্যবহৃত হয় ক্যারেক্টারগুলো বাফার করে দক্ষতার সাথে পড়ার জন্য।

Scanner Class এবং BufferedReader Class-এর মধ্যে গুরুত্বপূর্ণ পার্থক্য

ক্র. নং কী Scanner Class BufferedReader Class
১ সিঙ্ক্রোনাস (Synchronous) Scanner সিঙ্ক্রোনাস নন (non-synchronous), তাই শুধু সিঙ্গল-থ্রেডেড কেসে ব্যবহার করা উচিত। BufferedReader সিঙ্ক্রোনাস (synchronous)। মাল্টি-থ্রেডিং এনভায়রনমেন্টে BufferedReader ব্যবহার করা উচিত।
২ বাফার মেমরি (Buffer Memory) Scanner-র ছোট বাফার: ১ KB ক্যারেক্টার বাফার। BufferedReader-র বড় বাফার: ৮ KB বাইট বাফার (Scanner-এর চেয়ে বড়)।
৩ প্রসেসিং স্পিড (Processing Speed) Scanner কিছুটা স্লো, কারণ এটি ডেটা পার্স (parse) করে। BufferedReader Scanner-এর চেয়ে দ্রুত, কারণ এটি শুধু ক্যারেক্টার স্ট্রিম পড়ে।
৪ মেথডস (Methods) Scanner-এ nextInt(), nextShort() ইত্যাদি মেথড আছে। BufferedReader-এ parseInt(), parseShort() ইত্যাদি মেথড আছে (ইন্টিজার প্লাস)।
৫ লাইন পড়া (Read Line) Scanner-এ লাইন পড়ার জন্য nextLine() মেথড। BufferedReader-এ লাইন পড়ার জন্য readLine() মেথড।

Scanner vs BufferedReader উদাহরণ

JavaTester.java

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
  1. জাভাতে Thread এবং Runnable-এর পার্থক্য

  2. জাভাতে Exception এবং Error-এর পার্থক্য

  3. জাভাতে Serialization এবং Externalization-এর পার্থক্য

  4. জাভাতে Iterator এবং Enumeration-এর পার্থক্য