Line by Line File Reading এবং Writing

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

353

Line by Line File Reading এবং Writing Java I/O অপারেশনের একটি গুরুত্বপূর্ণ অংশ, যা বড় ফাইল বা টেক্সট ফাইলগুলি পড়তে এবং লেখার জন্য ব্যবহৃত হয়। Java I/O প্যাকেজের BufferedReader এবং BufferedWriter ক্লাসগুলি ব্যবহার করে আমরা line-by-line পড়তে এবং লেখতে পারি, যা performance এবং readability এর জন্য অত্যন্ত কার্যকরী।

BufferedReader এবং BufferedWriter ক্লাসগুলি Character Stream এর অংশ এবং buffering ব্যবহার করে I/O অপারেশনগুলি দ্রুত করতে সহায়ক।


BufferedReader এবং BufferedWriter এর ধারণা:

  1. BufferedReader:
    • BufferedReader ক্লাসটি ফাইল থেকে টেক্সট line by line পড়তে ব্যবহৃত হয়। এটি readLine() মেথড ব্যবহার করে প্রতিটি লাইন পড়ে এবং buffering ব্যবহার করে I/O অপারেশনের গতি বাড়ায়।
  2. BufferedWriter:
    • BufferedWriter ক্লাসটি ফাইল বা স্ট্রিমে টেক্সট লেখার জন্য ব্যবহৃত হয় এবং এটি buffering ব্যবহার করে যাতে লেখার গতি দ্রুত হয়। newLine() মেথড ব্যবহার করে নতুন লাইন শুরু করা যায়।

Line by Line File Reading:

BufferedReader ব্যবহার করে Line by Line File Reading

import java.io.*;

public class LineByLineReadingExample {
    public static void main(String[] args) {
        // BufferedReader দিয়ে ফাইল পড়া
        try (BufferedReader br = new BufferedReader(new FileReader("input.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);  // প্রতি লাইন প্রিন্ট করা হচ্ছে
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • BufferedReader দিয়ে readLine() মেথডের মাধ্যমে input.txt ফাইল থেকে প্রতি লাইন পড়া হচ্ছে।
  • readLine() মেথড প্রতিটি লাইনকে String হিসেবে রিটার্ন করে। যখন ফাইলের শেষ পযন্ত পড়া হয়ে যায়, তখন null রিটার্ন হয়।

আউটপুট (যদি input.txt ফাইলে কিছু ডেটা থাকে):

This is the first line.
This is the second line.
This is the third line.

Line by Line File Writing:

BufferedWriter ব্যবহার করে Line by Line File Writing

import java.io.*;

public class LineByLineWritingExample {
    public static void main(String[] args) {
        // BufferedWriter দিয়ে ফাইলে লাইন লেখার উদাহরণ
        try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
            String[] lines = {"This is the first line.", "This is the second line.", "This is the third line."};
            
            for (String line : lines) {
                bw.write(line);  // প্রতি লাইন লিখা হচ্ছে
                bw.newLine();     // নতুন লাইন শুরু করা হচ্ছে
            }
            System.out.println("Lines written to output.txt successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • BufferedWriter ব্যবহার করে write() মেথডের মাধ্যমে প্রতি লাইন ফাইলে লেখা হচ্ছে এবং newLine() মেথড দিয়ে নতুন লাইন শুরু হচ্ছে।
  • FileWriter স্ট্রিমটি লেখার জন্য ব্যবহৃত হচ্ছে, কিন্তু BufferedWriter ব্যবহার করে আমরা buffering সুবিধা পাচ্ছি, যার ফলে লেখার গতি বৃদ্ধি পাচ্ছে।

আউটপুট:

Lines written to output.txt successfully.

ফাইল output.txt এ লেখার জন্য:

This is the first line.
This is the second line.
This is the third line.

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

  1. Performance Improvement:
    • BufferedReader এবং BufferedWriter ক্লাসগুলি buffering প্রযুক্তি ব্যবহার করে, যা I/O অপারেশনের গতি বাড়ায়।
    • ছোট ছোট I/O অপারেশনের পরিবর্তে বড় ব্লক থেকে ডেটা পড়া এবং লেখা হয়, যার ফলে performance উন্নত হয়।
  2. Efficient Line Handling:
    • readLine() মেথড ব্যবহার করে সহজেই টেক্সট ফাইলের প্রতিটি লাইন পড়া যায়, যা ছোট বা বড় ফাইলের জন্য অত্যন্ত কার্যকর।
  3. Memory Management:
    • buffering ব্যবহারের কারণে memory management আরও কার্যকর হয় এবং ডেটা দ্রুত পড়া এবং লেখা হয়।
  4. Text-based I/O:
    • BufferedReader এবং BufferedWriter কেবল Character Streams, তাই তারা text-based I/O এর জন্য ব্যবহৃত হয়।

BufferedReader এবং BufferedWriter এর সীমাবদ্ধতা:

  1. Memory Consumption:
    • যেহেতু buffering ব্যবহার করা হয়, এটি কিছু পরিমাণ মেমরি ব্যবহার করে। তবে, এটি সাধারণত খুব বেশি সমস্যা সৃষ্টি করে না যদি ফাইলটি খুব বড় না হয়।
  2. Character Encoding:
    • BufferedReader এবং BufferedWriter কেবল character streams-এর জন্য উপযুক্ত। যদি byte-based I/O এর প্রয়োজন হয়, তবে BufferedInputStream এবং BufferedOutputStream ব্যবহৃত হবে।
  3. Exception Handling:
    • ফাইলের মধ্যে কোনও ত্রুটি থাকলে, যেমন ফাইল না পাওয়া বা অনুমতি সমস্যা, তখন IOException ফেলা হবে। সঠিক ত্রুটি হ্যান্ডলিং গুরুত্বপূর্ণ।

  • Line-by-line file reading এবং writing Java I/O অপারেশনের গুরুত্বপূর্ণ অংশ, বিশেষ করে যখন text files পরিচালনা করা হয়।
  • BufferedReader এবং BufferedWriter ব্যবহার করে performance বাড়ানো যায় এবং file I/O আরও কার্যকরী হয়ে ওঠে।
  • readLine() এবং write() মেথডগুলি সহজে লাইন ভিত্তিক পড়া এবং লেখা করতে সাহায্য করে।

এই ক্লাসগুলোকে buffering সুবিধা দেওয়া হয়েছে, যার ফলে ছোট I/O অপারেশনগুলোর পরিবর্তে বড় ব্লক থেকে ডেটা পড়া এবং লেখা করা হয়, ফলে গতি বৃদ্ধি পায়।

Content added By
Promotion

Are you sure to start over?

Loading...