Skill

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

FileReader এবং FileWriter - জাভা টাপল (Java Tuples) - Java Technologies

341

Java I/O (Input/Output) সিস্টেমে ফাইল থেকে টেক্সট ডেটা পড়া এবং লেখা করার জন্য Character Streams (যেমন FileReader এবং FileWriter) ব্যবহৃত হয়। Character Streams বাইনারি ডেটা না পড়ে সরাসরি text data (যেমন String) পড়তে এবং লেখতে ব্যবহৃত হয়।

Java Tuples ব্যবহার করে আমরা ফাইলের তথ্য একত্রে সংরক্ষণ এবং পরিচালনা করতে পারি, যেমন ফাইলের নাম এবং আকার, অথবা ফাইলের পাঠ্য ডেটা এবং তার সারসংক্ষেপ ইত্যাদি।


FileReader এবং FileWriter এর ধারণা

  1. FileReader: এটি একটি Character Stream ক্লাস, যা ফাইল থেকে টেক্সট ডেটা পড়ে। এটি Unicode টেক্সট ফাইল পড়তে সাহায্য করে।
  2. FileWriter: এটি একটি Character Stream ক্লাস, যা ফাইলের মধ্যে টেক্সট ডেটা লেখে। এটি Unicode টেক্সট ফাইল লিখতে সাহায্য করে।

গুরুত্বপূর্ণ মেথড:

  • read(): ফাইল থেকে একটি ক্যারেক্টার পড়ে।
  • read(char[] cbuf): একটি ক্যারেক্টার অ্যারে থেকে ডেটা পড়ে।
  • write(int c): একটি ক্যারেক্টার ফাইলে লেখে।
  • write(char[] cbuf): একটি ক্যারেক্টার অ্যারে ফাইলে লেখে।

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

কোড উদাহরণ:

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

public class FileReaderExample {
    public static void main(String[] args) {
        try (FileReader fr = new FileReader("input.txt")) {
            int charData;
            while ((charData = fr.read()) != -1) {
                System.out.print((char) charData); // পড়া ডেটা প্রিন্ট করা
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে যা ঘটছে:

  • FileReader ব্যবহার করা হচ্ছে ফাইল থেকে টেক্সট ডেটা পড়তে।
  • read() মেথডের মাধ্যমে আমরা এক এক করে ফাইল থেকে ক্যারেক্টার পড়ছি।

আউটপুট (যদি ফাইলের মধ্যে "Hello World!" লেখা থাকে):

Hello World!

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

কোড উদাহরণ:

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

public class FileWriterExample {
    public static void main(String[] args) {
        try (FileWriter fw = new FileWriter("output.txt")) {
            String data = "Hello, this is a test message!";
            fw.write(data);  // টেক্সট ডেটা ফাইলে লেখা
            System.out.println("Data written to the file successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে যা ঘটছে:

  • FileWriter ব্যবহার করা হচ্ছে ফাইলে টেক্সট ডেটা লেখার জন্য।
  • write() মেথডে একটি স্ট্রিং পাস করা হচ্ছে, যা ফাইলের মধ্যে লেখা হবে।

আউটপুট:

Data written to the file successfully.

এই কোডটি "output.txt" ফাইলে "Hello, this is a test message!" লিখে দেবে।


Java Tuples ব্যবহার করে ফাইলের নাম এবং আকার সংরক্ষণ

ফাইলের নাম এবং আকার একত্রে সংরক্ষণ করতে Java Tuples ব্যবহার করা যেতে পারে। Tuples সাধারণত একাধিক ডেটা সংরক্ষণ করতে ব্যবহার করা হয়। যেমন, ফাইলের নাম এবং আকার একত্রে রাখার জন্য একটি Pair ব্যবহার করা যেতে পারে।

কোড উদাহরণ (Tuple ব্যবহার করে):

import org.apache.commons.lang3.tuple.Pair;
import java.io.File;

public class FileTupleExample {
    public static void main(String[] args) {
        // ফাইল থেকে তথ্য পড়া
        Pair<String, Long> fileInfo = getFileInfo("input.txt");
        System.out.println("File Name: " + fileInfo.getLeft());
        System.out.println("File Size: " + fileInfo.getRight() + " bytes");
    }

    public static Pair<String, Long> getFileInfo(String fileName) {
        File file = new File(fileName);
        if (file.exists()) {
            return Pair.of(file.getName(), file.length());  // ফাইলের নাম এবং আকার সংরক্ষণ
        } else {
            return Pair.of("File does not exist", 0L);
        }
    }
}

আউটপুট:

File Name: input.txt
File Size: 25 bytes

এই উদাহরণে, Pair টাপল ব্যবহার করে আমরা ফাইলের নাম এবং আকার একত্রে সংরক্ষণ করছি।


FileReader এবং FileWriter এর সাথে Tuples ব্যবহার

Tuples ব্যবহার করে, আমরা ফাইলের নাম এবং তার আকার অথবা ফাইলের ডেটা এবং আকার একত্রে সংরক্ষণ করতে পারি।

কোড উদাহরণ:

import org.apache.commons.lang3.tuple.Pair;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileWithTuple {
    public static void main(String[] args) {
        // ফাইল থেকে ডেটা পড়ে Tuple এ সংরক্ষণ
        Pair<String, String> fileData = readFile("input.txt");
        System.out.println("File Content: " + fileData.getLeft());
        System.out.println("File Size: " + fileData.getRight());
        
        // ফাইলে টেক্সট লেখা
        writeFile("output.txt", "This is the new content written to the file.");
    }

    public static Pair<String, String> readFile(String fileName) {
        StringBuilder content = new StringBuilder();
        long size = 0;
        try (FileReader fr = new FileReader(fileName)) {
            int charData;
            while ((charData = fr.read()) != -1) {
                content.append((char) charData);
                size++;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        return Pair.of(content.toString(), String.valueOf(size)); // ফাইলের ডেটা এবং সাইজ সংরক্ষণ
    }

    public static void writeFile(String fileName, String data) {
        try (FileWriter fw = new FileWriter(fileName)) {
            fw.write(data);
            System.out.println("Data written to the file successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

আউটপুট:

File Content: Hello, this is the content of the input file.
File Size: 42
Data written to the file successfully.

Byte vs Character Streams:

  • Character Streams (যেমন FileReader এবং FileWriter) সাধারণত টেক্সট ফাইল (যেমন .txt) পড়া এবং লেখা জন্য ব্যবহার করা হয়।
  • Byte Streams (যেমন FileInputStream এবং FileOutputStream) বাইনারি ফাইল (যেমন ইমেজ, ভিডিও) পড়া এবং লেখা জন্য ব্যবহার করা হয়।

Byte Streams এবং Character Streams এর মধ্যে পার্থক্য হলো যে Character Streams টেক্সট ডেটার জন্য তৈরি, যেখানে Byte Streams যেকোনো ধরনের ডেটা (বাইনারি ডেটা সহ) পরিচালনা করতে সক্ষম।


  • FileReader এবং FileWriter টেক্সট ফাইল পড়া এবং লেখা করতে ব্যবহৃত হয়, এবং তারা Character Streams এর অংশ।
  • Java Tuples ব্যবহার করে ফাইলের নাম, আকার বা অন্যান্য ডেটা একত্রে সংরক্ষণ করা যেতে পারে, যা ডেটা পরিচালনার জন্য আরও সুবিধাজনক।
  • Byte Streams বাইনারি ডেটা পড়া এবং লেখার জন্য ব্যবহৃত হয়, যখন Character Streams শুধুমাত্র টেক্সট ডেটার জন্য ব্যবহৃত হয়।

Java I/O সিস্টেমে FileReader এবং FileWriter ব্যবহার করার মাধ্যমে ফাইল অপারেশনগুলো খুব সহজ এবং কার্যকর করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...