DataInputStream এবং DataOutputStream এর ভূমিকা

DataInputStream এবং DataOutputStream - জাভা আইও (Java.io Package) - Java Technologies

255

DataInputStream এবং DataOutputStream ক্লাস দুটি Java I/O প্যাকেজের অন্তর্গত, এবং এগুলি প্রিমিটিভ ডেটা টাইপ (যেমন int, float, boolean, ইত্যাদি) স্ট্রিম থেকে পড়তে এবং লেখার জন্য ব্যবহৃত হয়। এগুলি binary data পড়া এবং লেখার জন্য উপযোগী এবং তারা দ্বিতীয় স্তরের স্ট্রিম হিসেবে কাজ করে।

এই ক্লাসগুলির সাহায্যে আপনি প্রিমিটিভ ডেটা স্ট্রিমে পড়তে এবং লিখতে পারবেন, যা সিস্টেমের নির্দিষ্ট byte order অনুযায়ী ডেটা স্টোর করে। এর মানে হল যে, যখন আপনি DataOutputStream ব্যবহার করে ডেটা লেখেন এবং DataInputStream ব্যবহার করে তা পড়েন, তখন ডেটা সঠিকভাবে ফরম্যাট করা থাকে, এবং কোন সমস্যা ছাড়াই এটি পুনরুদ্ধার করা যায়।


DataInputStream

DataInputStream হল একটি InputStream এর সাবক্লাস যা binary data পড়তে ব্যবহৃত হয়। এটি বিভিন্ন প্রিমিটিভ ডেটা টাইপ পড়ার জন্য ব্যবহৃত হয়, যেমন int, float, double, boolean, এবং UTF স্ট্রিং। এটি ডেটাকে সিস্টেমের নির্দিষ্ট ফরম্যাটে পড়তে পারে, যা ডেটা serialization এবং deserialization এর জন্য গুরুত্বপূর্ণ।

DataInputStream এর মেথড:

  • read(): একটি বাইট পড়ে।
  • readInt(): একটি int পড়ে।
  • readFloat(): একটি float পড়ে।
  • readBoolean(): একটি boolean পড়ে।
  • readUTF(): একটি UTF স্ট্রিং পড়ে।
  • skip(long n): স্ট্রিম থেকে নির্দিষ্ট পরিমাণ বাইট উপেক্ষা করে।
  • available(): স্ট্রিম থেকে কতটুকু ডেটা পড়া সম্ভব তা রিটার্ন করে।

DataOutputStream

DataOutputStream হল একটি OutputStream এর সাবক্লাস যা binary data লেখার জন্য ব্যবহৃত হয়। এটি ডেটা স্ট্রিমে বিভিন্ন প্রিমিটিভ ডেটা টাইপ (যেমন int, float, boolean, ইত্যাদি) লেখার জন্য ব্যবহৃত হয় এবং এটি ডেটাকে সিস্টেমের নির্দিষ্ট ফরম্যাটে লেখে। এটি serialization এবং deserialization এর জন্য সুবিধাজনক।

DataOutputStream এর মেথড:

  • write(int b): একটি বাইট লেখে।
  • writeInt(int v): একটি int লেখে।
  • writeFloat(float v): একটি float লেখে।
  • writeBoolean(boolean v): একটি boolean লেখে।
  • writeUTF(String str): একটি UTF স্ট্রিং লেখে।
  • flush(): স্ট্রিমে সমস্ত ডেটা পাঠানোর জন্য ব্যবহৃত হয়।
  • close(): স্ট্রিমটি বন্ধ করে।

DataInputStream এবং DataOutputStream এর উদাহরণ

১. DataOutputStream এর মাধ্যমে ডেটা লেখা এবং DataInputStream এর মাধ্যমে ডেটা পড়া

ফাইল থেকে int, float, boolean এবং String লেখার এবং পড়ার উদাহরণ:

import java.io.*;

public class DataStreamExample {
    public static void main(String[] args) {
        // FileOutputStream এবং DataOutputStream দিয়ে ডেটা লেখা
        try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.dat"))) {
            dos.writeInt(123);         // int লেখুন
            dos.writeFloat(3.14f);     // float লেখুন
            dos.writeBoolean(true);    // boolean লেখুন
            dos.writeUTF("Hello, Java!");  // String (UTF format) লেখুন

            System.out.println("Data written to file successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }

        // FileInputStream এবং DataInputStream দিয়ে ডেটা পড়া
        try (DataInputStream dis = new DataInputStream(new FileInputStream("data.dat"))) {
            int intValue = dis.readInt();       // int পড়ুন
            float floatValue = dis.readFloat(); // float পড়ুন
            boolean booleanValue = dis.readBoolean();  // boolean পড়ুন
            String stringValue = dis.readUTF(); // String (UTF format) পড়ুন

            // পড়া ডেটা প্রদর্শন
            System.out.println("Read values from file:");
            System.out.println("int: " + intValue);
            System.out.println("float: " + floatValue);
            System.out.println("boolean: " + booleanValue);
            System.out.println("String: " + stringValue);

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

ব্যাখ্যা:

  • DataOutputStream দ্বারা data.dat ফাইলে int, float, boolean, এবং String (UTF format) ডেটা লেখা হচ্ছে।
  • পরে, DataInputStream ব্যবহার করে সেই ফাইল থেকে ডেটা পড়া হচ্ছে এবং কনসোলে প্রিন্ট করা হচ্ছে।

আউটপুট:

Data written to file successfully!
Read values from file:
int: 123
float: 3.14
boolean: true
String: Hello, Java!

DataInputStream এবং DataOutputStream এর সুবিধা

  1. প্রিমিটিভ ডেটা টাইপ হ্যান্ডলিং:
    • DataInputStream এবং DataOutputStream ক্লাসগুলি বিশেষভাবে প্রিমিটিভ ডেটা টাইপ (যেমন int, float, boolean, String ইত্যাদি) স্ট্রিমে পড়া এবং লেখার জন্য ডিজাইন করা হয়েছে। এটি ডেটা ফরম্যাটের সঠিকতা নিশ্চিত করে।
  2. স্ট্রিমে সিকোয়েন্সিয়াল রিড/রাইট:
    • এই ক্লাসগুলি ডেটা পড়ার এবং লেখার প্রক্রিয়াকে সিকোয়েন্সিয়ালি (একটির পর একটি) প্রক্রিয়া করে, যা ফাইল বা স্ট্রিমের সাথে সহজে কাজ করার সুযোগ দেয়।
  3. সহজভাবে Serialization এবং Deserialization:
    • DataOutputStream এবং DataInputStream ব্যবহার করে আপনি সোজাসুজি serialization এবং deserialization করতে পারবেন, যা Java অবজেক্টের স্ট্রিমিংয়ের জন্য কার্যকর।
  4. Cross-platform I/O:
    • DataInputStream এবং DataOutputStream সমস্ত প্ল্যাটফর্মে একই ফরম্যাটে ডেটা পড়তে এবং লিখতে সক্ষম, কারণ এটি সিস্টেমের Endian বৈশিষ্ট্য অনুসরণ করে ডেটা পাঠায় এবং গ্রহণ করে।

  • DataInputStream এবং DataOutputStream Java I/O সিস্টেমের অত্যন্ত গুরুত্বপূর্ণ ক্লাস যা প্রিমিটিভ ডেটা টাইপ পড়া এবং লেখার জন্য ব্যবহৃত হয়।
  • এগুলি binary data পরিচালনা করার জন্য কার্যকরী এবং সিস্টেমের byte order অনুযায়ী ডেটা স্টোর এবং পুনরুদ্ধার করতে সহায়ক।
  • DataInputStream এবং DataOutputStream ক্লাসগুলি ডেটা serialization এবং deserialization এর জন্য খুবই কার্যকরী এবং ফাইল বা স্ট্রিমে প্রিমিটিভ ডেটা পরিচালনা করার জন্য আদর্শ।
Content added By
Promotion

Are you sure to start over?

Loading...