Efficient Text Processing এর জন্য Buffered Reader/Writer ব্যবহার

BufferedReader এবং BufferedWriter - জাভা আইও (Java.io Package) - Java Technologies

312

Java I/O (Input/Output) প্যাকেজের মধ্যে BufferedReader এবং BufferedWriter ক্লাস দুটি character streams হিসেবে কাজ করে এবং টেক্সট ডেটার জন্য ইফিশিয়েন্ট প্রোসেসিং নিশ্চিত করতে ব্যবহৃত হয়। এই ক্লাসগুলো buffered I/O সুবিধা দেয়, যার ফলে ফাইল বা স্ট্রিম থেকে টেক্সট দ্রুত পড়া এবং লেখা সম্ভব হয়। তাদের কার্যকারিতা বৃদ্ধি পায় কারণ তারা একবারে বড় পরিমাণ ডেটা (যেমন একাধিক লাইন) মেমোরিতে রাখে এবং পরে স্ট্রিমে পাঠায় বা গ্রহণ করে।

BufferedReader এবং BufferedWriter এর ভূমিকা:

  1. BufferedReader:
    • BufferedReader ক্লাসটি টেক্সট ডেটা পড়ার জন্য ব্যবহৃত হয়।
    • এটি character stream যা বাইনারি ডেটা না পড়ে শুধুমাত্র টেক্সট ডেটা পড়তে সহায়ক। এটি read() এবং readLine() মেথড প্রদান করে, যা লাইন বাই লাইন ডেটা পড়তে ব্যবহৃত হয়।
    • এটি বড় ডেটা সেটের জন্য দ্রুত I/O প্রক্রিয়াকরণের জন্য পারফেক্ট, কারণ এটি ডেটাকে buffer করে এবং একবারে অনেকগুলো বাইট পড়ে।
  2. BufferedWriter:
    • BufferedWriter ক্লাসটি টেক্সট ডেটা লেখার জন্য ব্যবহৃত হয়।
    • এটি character stream যা ফাইল বা অন্য ডেস্টিনেশনে টেক্সট ডেটা লেখার জন্য ব্যবহৃত হয়। এটি write() এবং newLine() মেথড প্রদান করে, যা টেক্সট লেখার সময় নতুন লাইন যোগ করতে ব্যবহৃত হয়।

BufferedReader এবং BufferedWriter এর সুবিধা:

  1. Performance Improvement:
    • Buffered Streams কেবলমাত্র ছোট I/O অপারেশন করার পরিবর্তে একসাথে অনেকগুলো বাইট বা লাইন প্রক্রিয়া করে, ফলে I/O অপারেশন দ্রুত হয়।
  2. Efficiency in Reading and Writing Large Files:
    • বড় ফাইলগুলি দ্রুত পড়া এবং লেখা যায় কারণ এটি ডেটাকে বাফারে ধারণ করে এবং একসাথে ডেটা প্রক্রিয়া করা হয়।
  3. Reduced Disk Access:
    • ডেটা buffered থাকার কারণে ডিস্ক অ্যাক্সেস কম হয়, যা কর্মক্ষমতা বাড়ায়।

BufferedReader এবং BufferedWriter এর মেথড:

MethodDescription
read()একটি ক্যারেক্টার পড়ে।
readLine()একটি সম্পূর্ণ লাইন পড়ে।
skip(long n)স্ট্রিম থেকে n ক্যারেক্টার উপেক্ষা করে।
close()স্ট্রিম বন্ধ করে।
write(int c)একটি ক্যারেক্টার লেখে।
write(char[] c)একটি চরিত্র অ্যারে লেখে।
newLine()লেখার শেষে নতুন লাইন অ্যাড করে।
flush()বাফার ক্লিয়ার করে, ডেটা লেখার জন্য ফোর্স করে।

BufferedReader এবং BufferedWriter ব্যবহার করার উদাহরণ:

1. BufferedReader ব্যবহার করে ফাইল থেকে টেক্সট ডেটা পড়া:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class BufferedReaderExample {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);  // ফাইলের প্রতিটি লাইন প্রিন্ট করা
            }
        } catch (IOException e) {
            System.out.println("An error occurred while reading the file.");
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • BufferedReader ব্যবহার করে input.txt ফাইল থেকে টেক্সট লাইন বাই লাইন পড়া হয়েছে।
  • readLine() মেথডটি প্রতিটি লাইন পড়ে এবং পরবর্তীতে তা কনসোলে প্রিন্ট করা হয়।

আউটপুট:

Hello, this is a text file.
Welcome to Java I/O processing.
This file is processed using BufferedReader.

2. BufferedWriter ব্যবহার করে ফাইলে টেক্সট ডেটা লেখা:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedWriterExample {
    public static void main(String[] args) {
        String data = "This is a test file written using BufferedWriter.";
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
            writer.write(data);  // টেক্সট ডেটা ফাইলে লেখা
            writer.newLine();    // নতুন লাইন যোগ করা
            writer.write("This is the second line.");
            System.out.println("Data written to output.txt successfully.");
        } catch (IOException e) {
            System.out.println("An error occurred while writing the file.");
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • BufferedWriter ব্যবহার করে output.txt ফাইলে টেক্সট ডেটা লেখা হয়েছে।
  • write() মেথডে টেক্সট লেখা হয়েছে এবং newLine() মেথড দিয়ে নতুন লাইন যোগ করা হয়েছে।

আউটপুট (কনসোলে):

Data written to output.txt successfully.

output.txt ফাইলের কন্টেন্ট:

This is a test file written using BufferedWriter.
This is the second line.

3. ফাইল কপি করা BufferedReader এবং BufferedWriter ব্যবহার করে:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileCopyExample {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
             BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {

            String line;
            while ((line = reader.readLine()) != null) {
                writer.write(line);  // ফাইলের লাইনটি লেখার জন্য
                writer.newLine();     // নতুন লাইন অ্যাড করা
            }

            System.out.println("Data copied from input.txt to output.txt using Buffered Streams.");
        } catch (IOException e) {
            System.out.println("An error occurred during file copy.");
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • BufferedReader এবং BufferedWriter একসাথে ব্যবহার করে input.txt থেকে output.txt ফাইলে ডেটা কপি করা হয়েছে।
  • readLine() মেথড দ্বারা প্রতিটি লাইন পড়া হচ্ছে এবং write() মেথড দ্বারা output.txt ফাইলে লেখা হচ্ছে।

আউটপুট (কনসোলে):

Data copied from input.txt to output.txt using Buffered Streams.

BufferedReader এবং BufferedWriter এর সুবিধা:

  1. পারফরম্যান্স উন্নতি:
    • BufferedReader এবং BufferedWriter স্ট্রিমের মাধ্যমে একাধিক বাইট বা লাইন একবারে প্রক্রিয়া করে। এটি ফাইল I/O এর পারফরম্যান্স বৃদ্ধি করে, বিশেষত যখন বড় ফাইল বা অনেক লাইনের ডেটার সঙ্গে কাজ করা হয়।
  2. ডেটা প্রক্রিয়াকরণের দ্রুততা:
    • Buffered Streams I/O অপারেশনগুলির জন্য একটি বাফার ব্যবহার করে, যা disk access সংখ্যা কমিয়ে দেয় এবং দ্রুত প্রক্রিয়াকরণ নিশ্চিত করে।
  3. সহজ ব্যবস্থাপনা:
    • BufferedReader এবং BufferedWriter ক্লাসগুলি সহজেই ব্যবহারযোগ্য এবং ডেটা পড়া বা লেখার সময় দ্রুত এবং কার্যকরী অপারেশন নিশ্চিত করে।
  4. ফাইল কপি:
    • এই ক্লাসগুলির মাধ্যমে দ্রুত ফাইল কপি অপারেশন করা যায়, যা সাধারণ I/O অপারেশনের চেয়ে অনেক দ্রুত।

  • BufferedReader এবং BufferedWriter Java I/O সিস্টেমের অংশ যা ফাইল বা স্ট্রিম থেকে টেক্সট ডেটা পড়া এবং লেখার জন্য ব্যবহৃত হয়।
  • Buffered Streams ব্যবহার করে I/O অপারেশনগুলির performance বৃদ্ধি পায়, বিশেষ করে বড় ফাইলের ক্ষেত্রে।
  • BufferedReader এবং BufferedWriter টেক্সট ডেটার জন্য অত্যন্ত কার্যকরী, যেখানে প্রতিটি লাইন বা ক্যারেক্টার একসাথে প্রক্রিয়া করা প্রয়োজন।
Content added By
Promotion

Are you sure to start over?

Loading...