উদাহরণ সহ SequenceInputStream ব্যবহার

SequenceInputStream Class - জাভা আইও (Java.io Package) - Java Technologies

254

SequenceInputStream হল একটি Java I/O ক্লাস যা একাধিক InputStream কে একত্রিত (merge) করে একটি একক স্ট্রিম তৈরি করে। এর মাধ্যমে আপনি একাধিক ফাইল বা ইনপুট সোর্স থেকে ডেটা একত্রে পড়তে পারেন। এটি InputStream এর একটি সাবক্লাস এবং এটি বিভিন্ন স্ট্রিমের ডেটাকে একটি ধারাবাহিক স্ট্রিমে রূপান্তরিত করে।

SequenceInputStream সাধারণত তখন ব্যবহৃত হয় যখন আপনাকে একাধিক ইনপুট ফাইলের ডেটা একটি একক স্ট্রিমে একত্রিত করতে হয়। এটি "stream merging" বা "data concatenation" এর জন্য খুবই কার্যকরী।


SequenceInputStream এর বৈশিষ্ট্য:

  1. Multiple Input Streams Merging:
    • এটি একাধিক InputStream (যেমন, ফাইল, নেটওয়ার্ক সংযোগ বা অন্যান্য সোর্স) একত্রিত করে একটি একক স্ট্রিম তৈরি করতে সাহায্য করে।
  2. Sequential Reading:
    • এটি একে একে প্রতিটি স্ট্রিম থেকে ডেটা পড়ে এবং তারপর পরবর্তী স্ট্রিম থেকে ডেটা পড়তে চলে যায়।
  3. Automated Handling:
    • SequenceInputStream ক্লাসটি স্ট্রিমের মধ্যে স্বয়ংক্রিয়ভাবে স্যুইচ করে, অর্থাৎ এক স্ট্রিম শেষ হলে পরবর্তী স্ট্রিমে চলে যায়।

SequenceInputStream উদাহরণ:

Multiple Input Streams এর মাধ্যমে Data Merging

এখানে আমরা দুটি ইনপুট ফাইলের ডেটা একত্রিত করার জন্য SequenceInputStream ব্যবহার করব। প্রথমে দুটি ফাইল তৈরি করব এবং তারপর তাদের ডেটা একত্রিত করে একটি তৃতীয় ফাইলে লেখব।

import java.io.*;

public class SequenceInputStreamExample {
    public static void main(String[] args) {
        // দুটি ইনপুট ফাইল তৈরি
        File file1 = new File("file1.txt");
        File file2 = new File("file2.txt");
        
        // ফাইলের জন্য ডেটা লেখার জন্য PrintWriter ব্যবহার
        try (PrintWriter writer1 = new PrintWriter(file1);
             PrintWriter writer2 = new PrintWriter(file2)) {
            writer1.println("This is the first file.");
            writer1.println("It contains data for merging.");
            writer2.println("This is the second file.");
            writer2.println("It also contains data for merging.");
        } catch (IOException e) {
            e.printStackTrace();
        }

        // SequenceInputStream ব্যবহার করে দুইটি ফাইলের ডেটা একত্রিত করা
        try (FileInputStream fis1 = new FileInputStream(file1);
             FileInputStream fis2 = new FileInputStream(file2);
             SequenceInputStream sis = new SequenceInputStream(fis1, fis2);
             FileOutputStream fos = new FileOutputStream("mergedFile.txt")) {

            int byteData;
            while ((byteData = sis.read()) != -1) {
                fos.write(byteData); // ডেটা merged ফাইলে লেখা
            }
            System.out.println("Data merged successfully into mergedFile.txt");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  1. PrintWriter ব্যবহার করে দুটি ফাইলে ডেটা লেখা হচ্ছে।
  2. SequenceInputStream ব্যবহার করে file1.txt এবং file2.txt এর ডেটা একত্রিত করা হচ্ছে।
  3. ডেটা mergedFile.txt ফাইলে লেখা হচ্ছে।

আউটপুট:

Data merged successfully into mergedFile.txt

এবং mergedFile.txt ফাইলের কন্টেন্ট হবে:

This is the first file.
It contains data for merging.
This is the second file.
It also contains data for merging.

SequenceInputStream এর সুবিধা:

  1. Multiple Input Streams Merging:
    • SequenceInputStream একাধিক InputStream থেকে ডেটা একত্রিত করে একটি স্ট্রিমে রূপান্তরিত করতে সহায়ক। এটি ছোট স্ট্রিম গুলিকে একটি বড় স্ট্রিমে মেশানোর জন্য আদর্শ।
  2. Simplifies Data Handling:
    • একাধিক ইনপুট স্ট্রিম ম্যানেজ করার জন্য আলাদা করে কোড লিখতে হয় না। SequenceInputStream এই কাজটি নিজে করে, ফলে কোডটি সহজ এবং পরিষ্কার হয়।
  3. Automates Stream Switching:
    • একটি স্ট্রিম শেষ হলে পরবর্তী স্ট্রিমে চলে যাওয়া হয়, তাই স্ট্রিম ম্যানেজমেন্টের জন্য ম্যানুয়ালি স্যুইচ করার প্রয়োজন হয় না।

SequenceInputStream এর সীমাবদ্ধতা:

  1. Only Two Streams at a Time:
    • SequenceInputStream শুধুমাত্র দুটি ইনপুট স্ট্রিম একত্রিত করতে পারে। যদি একাধিক স্ট্রিম একত্রিত করতে হয়, তাহলে আপনাকে একাধিক SequenceInputStream ব্যবহার করতে হতে পারে অথবা একটি কাস্টম Enumeration তৈরি করতে হতে পারে।
  2. Limited Stream Control:
    • এটি কেবল InputStream স্ট্রিমের সাথে কাজ করে, তাই BufferedReader বা BufferedWriter এর মতো Character Streams এর জন্য এটি ব্যবহৃত হতে পারে না।

  • SequenceInputStream Java I/O ক্লাসটি একাধিক ইনপুট স্ট্রিমের ডেটাকে একটি স্ট্রিমে মিশানোর জন্য ব্যবহৃত হয়।
  • এটি performance উন্নত করতে এবং data merging প্রক্রিয়াকে সহজ করতে সাহায্য করে।
  • SequenceInputStream সাধারণত byte-based I/O অপারেশনের জন্য ব্যবহৃত হয়, এবং এটি যখন একাধিক ফাইল বা সোর্স থেকে ডেটা একত্রিত করার প্রয়োজন হয় তখন কার্যকরী।

এটি file merging, data concatenation, বা stream concatenation এর জন্য একটি কার্যকরী ক্লাস, যা সিস্টেমের কর্মক্ষমতা এবং কোডের সরলতা বৃদ্ধি করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...