InputStream এবং OutputStream ক্লাসের ভূমিকা

Byte Streams এবং Character Streams এর ধারণা - জাভা আইও (Java.io Package) - Java Technologies

316

Java I/O (Input/Output) প্যাকেজটি java.io প্যাকেজের অংশ, যা ডেটা স্ট্রীম এর মাধ্যমে ফাইল, নেটওয়ার্ক, মেমোরি বা অন্যান্য ইনপুট এবং আউটপুট অপারেশন পরিচালনা করার জন্য ব্যবহৃত হয়। এই প্যাকেজের দুটি প্রধান ক্লাস হল InputStream এবং OutputStream। এগুলি byte-oriented streams হিসেবে কাজ করে এবং বাইনারি ডেটার পাঠ এবং লেখার জন্য ব্যবহৃত হয়।


InputStream ক্লাসের ভূমিকা

InputStream হল java.io প্যাকেজের একটি অ্যাবস্ট্রাক্ট ক্লাস যা বাইট আকারে ডেটা পড়ার জন্য ব্যবহৃত হয়। এটি বিভিন্ন সাবক্লাসের মাধ্যমে ডেটার উৎস থেকে ডেটা পড়ে। এই ক্লাসটি প্রধানত ফাইল, নেটওয়ার্ক সংযোগ বা অন্য যে কোনও বাইনারি ডেটা সোর্স থেকে ডেটা পড়তে ব্যবহৃত হয়।

InputStream এর প্রধান মেথডসমূহ:

  • int read(): একটি বাইট পড়ে এবং সেগুলিকে int আকারে রিটার্ন করে। EOF (End of File) এ পৌঁছালে এটি -1 রিটার্ন করে।
  • int read(byte[] b): এটি একাধিক বাইট একটি বাফারে পড়ে এবং int দ্বারা কত বাইট পড়া হয়েছে তা রিটার্ন করে।
  • long skip(long n): এটি স্ট্রিমে ন প্রদানকৃত বাইটগুলো উপেক্ষা করে।
  • int available(): স্ট্রিম থেকে পড়ার জন্য কতটা ডেটা উপলব্ধ আছে তা রিটার্ন করে।
  • void close(): ইনপুট স্ট্রিমটি বন্ধ করে, যাতে মেমরি রিলিজ হয়।

InputStream এর কিছু সাধারণ সাবক্লাস:

  • FileInputStream: ফাইল থেকে ডেটা পড়ার জন্য ব্যবহৃত হয়।
  • ByteArrayInputStream: একটি বাইট অ্যারে থেকে ডেটা পড়ার জন্য ব্যবহৃত হয়।
  • BufferedInputStream: ডেটা পড়ার গতি বাড়ানোর জন্য বাফারিং ব্যবহৃত হয়।

OutputStream ক্লাসের ভূমিকা

OutputStream হল java.io প্যাকেজের একটি অ্যাবস্ট্রাক্ট ক্লাস যা বাইট আকারে ডেটা লেখার জন্য ব্যবহৃত হয়। এটি বিভিন্ন সাবক্লাসের মাধ্যমে ডেটার গন্তব্যে ডেটা লেখে। এই ক্লাসটি প্রধানত ফাইল, নেটওয়ার্ক সংযোগ বা অন্য যে কোনও বাইনারি ডেটা গন্তব্যে লেখার জন্য ব্যবহৃত হয়।

OutputStream এর প্রধান মেথডসমূহ:

  • void write(int b): একটি বাইট লেখে।
  • void write(byte[] b): একাধিক বাইট একটি বাফারে লেখে।
  • void flush(): স্ট্রিমে জমে থাকা সমস্ত ডেটা গন্তব্যে পাঠায়। এই মেথডটি ব্যবহার করা হয় যাতে নিশ্চিত করা যায় যে স্ট্রিমের সমস্ত ডেটা গন্তব্যে পৌঁছে।
  • void close(): আউটপুট স্ট্রিমটি বন্ধ করে, যাতে রিসোর্সগুলি সঠিকভাবে মুক্ত হয়।

OutputStream এর কিছু সাধারণ সাবক্লাস:

  • FileOutputStream: ফাইলে ডেটা লেখার জন্য ব্যবহৃত হয়।
  • ByteArrayOutputStream: একটি বাইট অ্যারেতে ডেটা লেখার জন্য ব্যবহৃত হয়।
  • BufferedOutputStream: ডেটা লেখার গতি বাড়ানোর জন্য বাফারিং ব্যবহৃত হয়।

InputStream এবং OutputStream এর মধ্যে পার্থক্য

বিষয়InputStreamOutputStream
কাজফাইল বা স্ট্রীম থেকে ডেটা পড়া।ফাইল বা স্ট্রীমে ডেটা লেখা।
ডেটা প্রকারByte (8-বিট) ডেটা পড়া।Byte (8-বিট) ডেটা লেখা।
মেথড ব্যবহারread(), available(), skip(), close()write(), flush(), close()
সাবক্লাসFileInputStream, ByteArrayInputStream, BufferedInputStreamFileOutputStream, ByteArrayOutputStream, BufferedOutputStream
মূল উদ্দেশ্যইনপুট সোর্স থেকে ডেটা পড়ে আনা।আউটপুট সোর্সে ডেটা লেখা।

InputStream এবং OutputStream এর উদাহরণ

ফাইল থেকে ডেটা পড়া (InputStream):

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

public class FileInputStreamExample {
    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 the byte as a character
            }
        } catch (IOException e) {
            System.out.println("An error occurred while reading the file.");
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • FileInputStream ব্যবহার করা হয়েছে একটি ফাইল থেকে ডেটা পড়তে।
  • fis.read() প্রতিবার একটি বাইট পড়ে এবং তা character হিসাবে প্রিন্ট করা হয়েছে।

ফাইলে ডেটা লেখা (OutputStream):

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

public class FileOutputStreamExample {
    public static void main(String[] args) {
        String data = "Hello, this is a test!";
        try (FileOutputStream fos = new FileOutputStream("output.txt")) {
            fos.write(data.getBytes()); // Write string as bytes to the file
            System.out.println("Data written to the file successfully.");
        } catch (IOException e) {
            System.out.println("An error occurred while writing to the file.");
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • FileOutputStream ব্যবহার করা হয়েছে ডেটা ফাইলে লেখার জন্য।
  • fos.write(data.getBytes()) স্ট্রিংকে বাইট অ্যারেতে রূপান্তর করে ফাইলে লেখা হয়েছে।

সারাংশ

  • InputStream এবং OutputStream Java I/O সিস্টেমের মূল ক্লাস যা বাইনারি ডেটা পড়া এবং লেখা ব্যবস্থাপনা করে।
  • InputStream ক্লাস ডেটা পড়ার জন্য ব্যবহৃত হয় এবং OutputStream ক্লাস ডেটা লেখার জন্য ব্যবহৃত হয়।
  • FileInputStream, FileOutputStream এবং BufferedInputStream/BufferedOutputStream বিভিন্ন ক্লাসের মাধ্যমে ফাইল এবং অন্যান্য I/O সোর্সে ডেটা প্রক্রিয়া করা যায়।
  • এই ক্লাসগুলোতে ব্যবহৃত read(), write(), close() ইত্যাদি মেথডগুলি ফাইল এবং স্ট্রীম পরিচালনার জন্য অত্যন্ত গুরুত্বপূর্ণ।
Content added By
Promotion

Are you sure to start over?

Loading...