Line by Line File Reading এবং Writing

BufferedReader এবং BufferedWriter - জাভা টাপল (Java Tuples) - Java Technologies

384

Java তে Line by Line File Reading এবং Writing সাধারণত BufferedReader এবং BufferedWriter ক্লাসের মাধ্যমে করা হয়। Javatuples লাইব্রেরি ব্যবহার করে, আপনি প্রতিটি লাইনে থাকা ডেটাকে Tuples এ সংরক্ষণ করতে পারেন, যা ডেটাকে আরও ভালভাবে পরিচালনা এবং ম্যানিপুলেট করতে সহায়ক। নিচে Line by Line File Reading এবং Writing এর উদাহরণ দেয়া হয়েছে যেখানে Tuples ব্যবহৃত হয়েছে।


Line by Line File Reading (BufferedReader) এবং Tuples

ফাইল থেকে লাইন ধরে ডেটা পড়া এবং প্রতিটি লাইনে থাকা ডেটা Tuples এ সংরক্ষণ করা। উদাহরণ হিসাবে, একটি CSV ফাইল থেকে নাম এবং বয়স পড়ার জন্য Pair Tuple ব্যবহার করা হবে।

কোড উদাহরণ:

import org.javatuples.Pair;
import java.io.*;
import java.util.*;

public class LineByLineFileReading {
    public static void main(String[] args) {
        String filePath = "data.txt"; // ফাইলের পথ

        List<Pair<String, Integer>> dataList = new ArrayList<>();

        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
            String line;
            while ((line = br.readLine()) != null) {
                // কমা দ্বারা ভাগ করে নাম এবং বয়স পৃথক করা
                String[] parts = line.split(",");
                if (parts.length == 2) {
                    String name = parts[0].trim();
                    Integer age = Integer.parseInt(parts[1].trim());

                    // Tuples এ নাম এবং বয়স সংরক্ষণ
                    dataList.add(Pair.with(name, age));
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        // Tuples থেকে ডেটা প্রদর্শন
        for (Pair<String, Integer> data : dataList) {
            System.out.println("Name: " + data.getValue0() + ", Age: " + data.getValue1());
        }
    }
}

এটি ফাইল data.txt থেকে লাইনে লাইনে ডেটা পড়ে এবং প্রতিটি লাইনে থাকা নাম এবং বয়সের ডেটা Pair Tuple এ সংরক্ষণ করে।

Sample data.txt File:

Alice, 25
Bob, 30
Charlie, 35

আউটপুট:

Name: Alice, Age: 25
Name: Bob, Age: 30
Name: Charlie, Age: 35

Line by Line File Writing (BufferedWriter) এবং Tuples

এই উদাহরণে, আমরা Tuples ব্যবহার করে একটি ফাইলে ডেটা লিখব। প্রতি Pair Tuple থেকে নাম এবং বয়স আলাদা করে ফাইলে লেখা হবে।

কোড উদাহরণ:

import org.javatuples.Pair;
import java.io.*;
import java.util.*;

public class LineByLineFileWriting {
    public static void main(String[] args) {
        List<Pair<String, Integer>> dataList = new ArrayList<>();
        dataList.add(Pair.with("Alice", 25));
        dataList.add(Pair.with("Bob", 30));
        dataList.add(Pair.with("Charlie", 35));

        String filePath = "output.txt"; // ফাইলের পথ

        try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
            for (Pair<String, Integer> data : dataList) {
                String line = data.getValue0() + ", " + data.getValue1();
                writer.write(line);
                writer.newLine(); // নতুন লাইনে লেখার জন্য
            }
            System.out.println("Data written to file successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এই কোডটি dataList থেকে প্রতি Pair Tuple এর নাম এবং বয়স নিয়ে একটি নতুন লাইনে লিখে দেবে।

output.txt ফাইলের আউটপুট:

Alice, 25
Bob, 30
Charlie, 35

Performance Optimization এবং Best Practices

  1. Buffer Size Optimization:
    • BufferedReader এবং BufferedWriter ক্লাসের বাফার সাইজ নিয়ন্ত্রণ করা হলে পারফরম্যান্স আরও বৃদ্ধি পায়। সাধারণত, 8KB থেকে 64KB বাফার সাইজ ব্যবহার করা হয়।
  2. Efficient Data Processing:
    • Stream API ব্যবহার করে ডেটা প্রক্রিয়া করার সময় কোডের কার্যকারিতা বাড়ানো যায়।
  3. Avoid Unnecessary Data Storage:
    • ডেটা পড়ে এবং লেখার পর তা সঞ্চয় করা না হলে, Tuples এর আকার কমান। অতিরিক্ত মেমরি ব্যবহার এড়াতে শুধু প্রয়োজনীয় ডেটা ব্যবহার করুন।
  4. Handling Large Files:
    • খুব বড় ফাইল হলে BufferedReader এবং BufferedWriter ব্যবহার করলে I/O অপারেশন দ্রুত হবে।
  5. Error Handling:
    • IOException সহ সব ধরনের Exception সঠিকভাবে হ্যান্ডল করুন, বিশেষ করে ফাইল পড়া এবং লেখার সময়।

  • Line by Line File Reading এবং Writing অত্যন্ত গুরুত্বপূর্ণ ফাইল ম্যানিপুলেশন অপারেশন যা Javatuples ব্যবহার করে আরও কার্যকর এবং সঠিকভাবে সম্পাদিত হতে পারে।
  • Tuples ব্যবহার করে ডেটা আরও সুসংহত এবং অ্যাক্সেসযোগ্য হয়।
  • Buffered Streams এবং Tuple এর ব্যবহারে ফাইল I/O অপারেশন দ্রুত, সঠিক এবং কম মেমরি খরচ করে করা সম্ভব।
Content added By
Promotion

Are you sure to start over?

Loading...