Streams এবং Readers এর মধ্যে ডেটা ট্রান্সফার

Java Technologies - অ্যাপাচি কমন্স আইও (Apache Common IO) IOUtils ক্লাসের ব্যবহার |
160
160

Apache Commons IO লাইব্রেরি Java-তে Streams এবং Readers এর মধ্যে ডেটা ট্রান্সফার সহজ এবং কার্যকরী করে তোলে। স্ট্রিম এবং রিডার সাধারণত ডেটা পড়া এবং লেখার জন্য ব্যবহৃত হয়, তবে কখনও কখনও আপনাকে স্ট্রিম থেকে রিডারে ডেটা পাঠাতে বা রিডার থেকে স্ট্রিমে ডেটা পাঠাতে হতে পারে। Apache Commons IO লাইব্রেরি এই ধরনের ডেটা ট্রান্সফারের জন্য অনেক সহজ এবং দ্রুত উপায় প্রদান করে।

এখানে Streams এবং Readers এর মধ্যে ডেটা ট্রান্সফার করার কিছু গুরুত্বপূর্ণ উদাহরণ এবং পদ্ধতি আলোচনা করা হবে।

1. Streams এবং Readers এর মধ্যে ডেটা ট্রান্সফার

Java-তে, InputStream এবং Reader ক্লাসগুলি ব্যবহার করে ডেটা পড়া হয়, যেখানে OutputStream এবং Writer ক্লাসগুলি ডেটা লেখার জন্য ব্যবহৃত হয়। InputStream এবং OutputStream বাইট-ভিত্তিক স্ট্রিম, এবং Reader এবং Writer ক্যারেক্টার-ভিত্তিক স্ট্রিমের জন্য ব্যবহৃত হয়।

Apache Commons IO লাইব্রেরি এই স্ট্রিম এবং রিডারদের মধ্যে ডেটা ট্রান্সফার করতে IOUtils ক্লাসের মাধ্যমে সহজ মেথড প্রদান করে।

1.1 InputStream থেকে OutputStream এ ডেটা ট্রান্সফার

এটি সাধারণত তখন ব্যবহৃত হয় যখন আপনি একটি বাইট স্ট্রিম থেকে অন্য বাইট স্ট্রিমে ডেটা কপি করতে চান।

IOUtils.copy() মেথড ব্যবহার করে খুব সহজেই InputStream থেকে OutputStream-এ ডেটা কপি করা যেতে পারে।

উদাহরণ: InputStream থেকে OutputStream এ ডেটা কপি করা

import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class StreamDataTransferExample {
    public static void main(String[] args) {
        try (FileInputStream inputStream = new FileInputStream("sourceFile.txt");
             FileOutputStream outputStream = new FileOutputStream("destinationFile.txt")) {

            // InputStream থেকে OutputStream এ ডেটা কপি করা
            IOUtils.copy(inputStream, outputStream);
            System.out.println("Data copied successfully!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

আউটপুট:

Data copied successfully!

এখানে:

  • IOUtils.copy(inputStream, outputStream) মেথডটি sourceFile.txt থেকে destinationFile.txt-এ সমস্ত কনটেন্ট কপি করেছে।
  • FileInputStream এবং FileOutputStream ব্যবহার করে বাইট স্ট্রিমে ডেটা ট্রান্সফার করা হয়েছে।

1.2 Reader থেকে Writer এ ডেটা ট্রান্সফার

ক্যরেক্টার-ভিত্তিক স্ট্রিমের ক্ষেত্রে, Reader থেকে Writer-এ ডেটা কপি করার জন্যও আপনি IOUtils.copy() ব্যবহার করতে পারেন। এটি InputStream এবং OutputStream এর মতোই কাজ করে, তবে এখানে Reader এবং Writer ক্লাস ব্যবহার করা হয়।

উদাহরণ: Reader থেকে Writer এ ডেটা কপি করা

import org.apache.commons.io.IOUtils;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class ReaderWriterExample {
    public static void main(String[] args) {
        try (FileReader reader = new FileReader("sourceFile.txt");
             FileWriter writer = new FileWriter("destinationFile.txt")) {

            // Reader থেকে Writer এ ডেটা কপি করা
            IOUtils.copy(reader, writer);
            System.out.println("Data copied successfully!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

আউটপুট:

Data copied successfully!

এখানে:

  • IOUtils.copy(reader, writer) মেথডটি sourceFile.txt থেকে destinationFile.txt-এ ক্যারেক্টার ডেটা কপি করেছে।

1.3 InputStream থেকে Writer এ ডেটা ট্রান্সফার

কখনও কখনও আপনাকে একটি InputStream থেকে একটি Writer-এ ডেটা পাঠাতে হতে পারে। এই পরিস্থিতিতে, প্রথমে InputStream থেকে বাইট ডেটা পড়া হয়, তারপর Writer এ ক্যারেক্টার আউটপুট হিসেবে লিখা হয়।

উদাহরণ: InputStream থেকে Writer এ ডেটা কপি করা

import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;

public class InputStreamToWriterExample {
    public static void main(String[] args) {
        try (FileInputStream inputStream = new FileInputStream("sourceFile.txt");
             FileWriter writer = new FileWriter("destinationFile.txt")) {

            // InputStream থেকে Writer এ ডেটা কপি করা
            IOUtils.copy(inputStream, writer, "UTF-8");
            System.out.println("Data copied successfully!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

আউটপুট:

Data copied successfully!

এখানে:

  • IOUtils.copy(inputStream, writer, "UTF-8") মেথডটি InputStream থেকে বাইট ডেটা পড়ে, এবং Writer-এ UTF-8 এনকোডিং ব্যবহার করে ডেটা লেখে।

2. IOUtils ক্লাসের অন্যান্য কার্যকারিতা

IOUtils ক্লাসটি স্ট্রিম এবং রিডার-রাইটার ডেটা ট্রান্সফার ছাড়াও অন্যান্য অনেক কার্যকরী মেথড সরবরাহ করে, যেমন:

  • toByteArray(): একটি InputStream বা Reader থেকে byte array তে ডেটা কনভার্ট করা।
  • toString(): একটি InputStream বা Reader থেকে স্ট্রিং-এ ডেটা কনভার্ট করা।
  • closeQuietly(): একটি স্ট্রিম বা রিডার বন্ধ করার জন্য, কোনো এক্সসেপশন ছাড়া।

উদাহরণ: InputStream থেকে byte array তে ডেটা কনভার্ট করা

import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.IOException;

public class StreamToByteArrayExample {
    public static void main(String[] args) {
        try (FileInputStream inputStream = new FileInputStream("sourceFile.txt")) {
            // InputStream থেকে byte array তে ডেটা কনভার্ট করা
            byte[] byteArray = IOUtils.toByteArray(inputStream);
            System.out.println("Data as byte array: ");
            for (byte b : byteArray) {
                System.out.print(b + " ");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

আউটপুট:

Data as byte array: 72 101 108 108 111 32 116 104 105 115 32 105 115 32 97 110 32 101 120 97 109 112 108 101 32 102 105 108 101 46

এখানে:

  • IOUtils.toByteArray(inputStream) মেথডটি InputStream থেকে byte array তে ডেটা কনভার্ট করেছে।

3. সারাংশ

  • Apache Commons IO লাইব্রেরির IOUtils ক্লাস ব্যবহার করে আপনি সহজে Streams এবং Readers এর মধ্যে ডেটা ট্রান্সফার করতে পারেন।
  • copy() মেথডের মাধ্যমে আপনি এক স্ট্রিম থেকে অন্য স্ট্রিমে ডেটা কপি করতে পারেন, যেমন InputStream থেকে OutputStream বা Reader থেকে Writer
  • IOUtils অন্যান্য কার্যকরী মেথড সরবরাহ করে যেমন toByteArray(), toString(), এবং closeQuietly(), যা স্ট্রিম হ্যান্ডলিংয়ের জন্য আরও সহজ এবং কার্যকরী টুলস প্রদান করে।

Apache Commons IO লাইব্রেরি আপনাকে স্ট্রিম এবং রিডার/রাইটার ভিত্তিক ডেটা ট্রান্সফার দ্রুত এবং সুনির্দিষ্টভাবে সম্পাদন করতে সহায়তা করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion