Skill

ফাইল থেকে ডেটা পড়া এবং লেখা

FileInputStream এবং FileOutputStream - জাভা টাপল (Java Tuples) - Java Technologies

358

Tuples সাধারণত একাধিক ডেটা টাইপ একত্রে সংরক্ষণ করার জন্য ব্যবহৃত হয়। কিন্তু ফাইল থেকে ডেটা পড়া এবং লেখার সময় Tuples ব্যবহার করে ডেটার বিভিন্ন অংশ (যেমন নাম, বয়স, মান) একত্রে সংরক্ষণ করা যায় এবং এটি কোডকে আরো কার্যকর ও রিডেবল করে তোলে।

এখানে আমরা দেখব Java Byte Streams এবং Character Streams ব্যবহার করে ফাইল থেকে ডেটা পড়া এবং লেখা করার উদাহরণ, এবং Tuples ব্যবহার করে ডেটা ম্যানেজমেন্ট।


১. ফাইল থেকে ডেটা পড়া (Reading Data from a File)

ফাইল থেকে ডেটা পড়তে Java তে বিভিন্ন ধরনের Streams ব্যবহার করা যায়। এখানে FileInputStream এবং BufferedReader এর উদাহরণ দেখব।

ফাইল থেকে বাইনারি ডেটা পড়া (Byte Streams)

import java.io.FileInputStream;
import java.io.IOException;

public class FileReadExample {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("example.txt")) {
            int data;
            while ((data = fis.read()) != -1) {
                System.out.print((char) data); // Print byte as character
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে FileInputStream ব্যবহার করা হয়েছে, যা বাইনারি ডেটা পড়ে এবং byte-by-byte ডেটা প্রিন্ট করে।

ফাইল থেকে টেক্সট ডেটা পড়া (Character Streams)

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

public class FileTextReadExample {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line); // Print each line
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে BufferedReader এবং FileReader ব্যবহার করা হয়েছে, যা টেক্সট ডেটা পড়ে এবং লাইন-by-লাইন ডেটা প্রিন্ট করে।


২. ফাইল এ ডেটা লেখা (Writing Data to a File)

Java তে ফাইল এ ডেটা লেখার জন্য FileOutputStream বা BufferedWriter ব্যবহার করা যায়।

ফাইলে বাইনারি ডেটা লেখা (Byte Streams)

import java.io.FileOutputStream;
import java.io.IOException;

public class FileWriteExample {
    public static void main(String[] args) {
        try (FileOutputStream fos = new FileOutputStream("output.txt")) {
            String data = "Hello, World!";
            fos.write(data.getBytes()); // Write string as bytes
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে FileOutputStream ব্যবহার করা হয়েছে, যা বাইনারি ডেটা ফাইলে লেখে। getBytes() ব্যবহার করে স্ট্রিংকে বাইনারি ফরম্যাটে রূপান্তরিত করা হয়।

ফাইলে টেক্সট ডেটা লেখা (Character Streams)

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

public class FileTextWriteExample {
    public static void main(String[] args) {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
            writer.write("Hello, World!"); // Write string to file
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে BufferedWriter এবং FileWriter ব্যবহার করা হয়েছে, যা টেক্সট ডেটা ফাইলে লেখে।


৩. Tuples এর সাথে ফাইল থেকে ডেটা পড়া এবং লেখা

Tuples ব্যবহার করে আমরা ফাইলের বিভিন্ন অংশের ডেটা একত্রে রাখার জন্য ব্যবহার করতে পারি। যেমন, একটি ফাইল থেকে নাম এবং বয়স পড়ে একটি Tuple তৈরি করা।

ফাইল থেকে Tuples ব্যবহার করে ডেটা পড়া

Example:

import io.vavr.Tuple;
import io.vavr.Tuple2;

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

public class FileReadWithTuples {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                String[] data = line.split(","); // Assuming CSV format
                Tuple2<String, Integer> person = Tuple.of(data[0], Integer.parseInt(data[1]));
                System.out.println("Name: " + person._1 + ", Age: " + person._2);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Explanation:

  • ফাইলের প্রতিটি লাইন থেকে ডেটা পড়া হয় এবং Tuple2<String, Integer> তৈরি করা হয়।
  • এখানে ধরেই নেওয়া হয়েছে যে ফাইলের ডেটা CSV ফরম্যাটে রয়েছে (যেমন: Alice,25), এবং ডেটা পড়ে Tuple তৈরি করা হয়েছে।

ফাইলে Tuples ব্যবহার করে ডেটা লেখা

Example:

import io.vavr.Tuple;
import io.vavr.Tuple2;

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

public class FileWriteWithTuples {
    public static void main(String[] args) {
        Tuple2<String, Integer> person1 = Tuple.of("Alice", 25);
        Tuple2<String, Integer> person2 = Tuple.of("Bob", 30);

        try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
            writer.write(person1._1 + "," + person1._2); // Write to file
            writer.newLine();
            writer.write(person2._1 + "," + person2._2);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Explanation:

  • Tuple2 ব্যবহার করে নাম এবং বয়স ডেটা একত্রে সংরক্ষণ করা হয়েছে এবং সেই ডেটা ফাইলে লেখা হয়েছে।
  • ফাইলের প্রতিটি লাইনেই একটি Tuple (নাম, বয়স) লেখা হয়েছে।

Tuples এবং Streams এর মধ্যে সম্পর্ক

  1. Compact Data Handling: Tuples সহজে একত্রে একাধিক ডেটা সংরক্ষণ করতে সাহায্য করে, যা Streams API এর সাথে সহজে কাজ করতে সহায়ক।
  2. Improved Readability: Tuples এর মাধ্যমে ডেটার ধরণ পরিষ্কার এবং সহজভাবে সংগ্রহ করা যায়।
  3. Efficient Data Transfer: Tuples ডেটার গঠন সঠিকভাবে পরিচালনা করে, যা ফাইল থেকে পড়া এবং লেখার সময় পারফরম্যান্সে সহায়ক।

  • Byte Streams এবং Character Streams ব্যবহার করে ফাইল থেকে ডেটা পড়া এবং লেখা সম্ভব।
  • Tuples ব্যবহার করে একাধিক ডেটা একত্রে সংরক্ষণ এবং পরিচালনা করা যায়, যা ফাইল ডেটা প্রসেসিংকে সহজ এবং কার্যকর করে তোলে।
  • Best Practice: যখন ফাইলের ডেটার সাথে সম্পর্কিত একাধিক মানের হ্যান্ডলিং করতে হয়, তখন Tuples ব্যবহার করা ভালো।
Content added By
Promotion

Are you sure to start over?

Loading...