DataInputStream এবং DataOutputStream

জাভা টাপল (Java Tuples) - Java Technologies

376

DataInputStream এবং DataOutputStream ক্লাসগুলি Java I/O প্যাকেজের অংশ এবং তারা primitive data types (যেমন int, float, double, boolean ইত্যাদি) এবং String ডেটা বাইনারি ফরম্যাটে পড়া এবং লেখা করার জন্য ব্যবহৃত হয়। এই ক্লাসগুলির সাহায্যে আপনি ডেটা স্ট্রিমের মাধ্যমে platform-independent এবং compact data পরিচালনা করতে পারেন।

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

  1. DataInputStream:
    • DataInputStream ক্লাসটি primitive data types এবং String ডেটা পড়তে ব্যবহৃত হয়।
    • এটি ডেটা পড়ার জন্য binary format ব্যবহার করে, যার ফলে এটি দ্রুত এবং কার্যকরী।
  2. DataOutputStream:
    • DataOutputStream ক্লাসটি primitive data types এবং String ডেটা binary format এ লেখার জন্য ব্যবহৃত হয়।

এই ক্লাসগুলো মূলত files, network connections, memory buffers-এ binary data লেখা এবং পড়ার জন্য ব্যবহৃত হয়।


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

মেথডবর্ণনা
readInt()একটি int বাইট থেকে পড়ে।
readFloat()একটি float বাইট থেকে পড়ে।
readDouble()একটি double বাইট থেকে পড়ে।
readUTF()একটি String পড়ে, যা UTF-8 এনকোডেড।
readBoolean()একটি boolean পড়ে।

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

মেথডবর্ণা
writeInt(int v)একটি int বাইট আকারে লেখে।
writeFloat(float v)একটি float বাইট আকারে লেখে।
writeDouble(double v)একটি double বাইট আকারে লেখে।
writeUTF(String str)একটি String লিখে, যা UTF-8 এনকোডেড।
writeBoolean(boolean v)একটি boolean লেখে।

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

১. DataInputStream ব্যবহার করে ডেটা পড়া

import java.io.*;

public class DataInputStreamExample {
    public static void main(String[] args) {
        try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) {
            int intData = dis.readInt();   // Read integer
            float floatData = dis.readFloat(); // Read float
            boolean boolData = dis.readBoolean(); // Read boolean

            System.out.println("Read Integer: " + intData);
            System.out.println("Read Float: " + floatData);
            System.out.println("Read Boolean: " + boolData);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এটি data.bin ফাইল থেকে int, float, এবং boolean টাইপের ডেটা পড়বে।

২. DataOutputStream ব্যবহার করে ডেটা লেখা

import java.io.*;

public class DataOutputStreamExample {
    public static void main(String[] args) {
        try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.bin"))) {
            int intData = 100;
            float floatData = 25.5f;
            boolean boolData = true;

            dos.writeInt(intData);   // Write integer
            dos.writeFloat(floatData); // Write float
            dos.writeBoolean(boolData); // Write boolean

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

এটি data.bin ফাইলে int, float, এবং boolean ডেটা লেখবে।


DataInputStream এবং DataOutputStream এর ব্যবহার:

  1. ফাইল থেকে ডেটা পড়া এবং লেখা:
    • এটি প্রধানত binary data (যেমন int, float, String) পড়তে এবং লিখতে ব্যবহৃত হয়। উদাহরণস্বরূপ, ডেটাবেসে ডেটা সংরক্ষণ বা ফাইল এক্সচেঞ্জে সাহায্য করে।
  2. Portable Data:
    • DataInputStream এবং DataOutputStream ব্যবহার করে ডেটা লেখার সময় ডেটা স্ট্রিমের মাধ্যমে এটি platform-independent হয়, অর্থাৎ এক সিস্টেমে লেখা ডেটা অন্য সিস্টেমে পড়া যায়।
  3. Efficiency:
    • স্ট্রিমগুলি binary format ব্যবহার করে দ্রুত কাজ করে, যার ফলে কার্যকারিতা বৃদ্ধি পায়, বিশেষ করে বড় ডেটা সেটের জন্য।

Java Tuples ব্যবহার করে DataInputStream এবং DataOutputStream

Java Tuples ব্যবহার করে File থেকে primitive types এর ডেটা পড়া এবং লিখে এই ডেটাগুলির সংগঠন তৈরি করা যেতে পারে। এটি কোডের সঙ্গতি এবং পরিষ্কারতা উন্নত করতে সাহায্য করে।

উদাহরণ: DataInputStream এবং DataOutputStream এর সাথে Tuple ব্যবহার

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

public class TupleStreamExample {
    public static void main(String[] args) {
        Pair<Integer, String> data = readDataFromFile("data.bin");
        System.out.println("Integer Value: " + data.getLeft());
        System.out.println("String Value: " + data.getRight());
    }

    public static Pair<Integer, String> readDataFromFile(String fileName) {
        int intData = 0;
        String strData = "";
        try (DataInputStream dis = new DataInputStream(new FileInputStream(fileName))) {
            intData = dis.readInt(); // Read integer
            strData = dis.readUTF(); // Read String
        } catch (IOException e) {
            e.printStackTrace();
        }

        return Pair.of(intData, strData);
    }
}

ফাইল থেকে ডেটা পড়ে এবং Java Tuples (Pair) ব্যবহার করে ডেটার দুটি মান সংরক্ষণ করা হয়েছে।


  • DataInputStream এবং DataOutputStream ক্লাসগুলি প্রিমিটিভ ডেটা টাইপগুলি binary format এ পড়া এবং লেখার জন্য ব্যবহৃত হয়।
  • Java Tuples ব্যবহার করে, আপনি এই ডেটা টাইপগুলির বিভিন্ন মান একত্রে সংরক্ষণ এবং পরিচালনা করতে পারেন, যা কোডকে আরও পরিষ্কার এবং কার্যকরী করে তোলে।
  • Platform-independent এবং efficient ডেটা স্টোরেজ এবং ট্রান্সফার নিশ্চিত করার জন্য এই স্ট্রিমগুলির ব্যবহার একটি আদর্শ সমাধান।
Content added By

DataInputStream এবং DataOutputStream ক্লাস দুটি Java I/O প্যাকেজের অংশ, যা বাইনারি ডেটা পড়া এবং লেখা পরিচালনা করে। এই ক্লাসগুলো primitive data types (যেমন int, float, double, char ইত্যাদি) এবং String কে platform-independent ফর্ম্যাটে সিরিয়ালাইজ এবং ডিসিরিয়ালাইজ করতে ব্যবহৃত হয়।

DataInputStream এবং DataOutputStream একত্রে binary data ব্যবহারের জন্য কার্যকরী, কারণ তারা দ্রুত এবং নির্ভরযোগ্যভাবে ডেটা অ্যাক্সেস এবং রাইট করতে সক্ষম।


DataInputStream এর ভূমিকা

DataInputStream ক্লাসটি বাইনারি ডেটা পড়ার জন্য ব্যবহৃত হয়। এটি primitive data types এবং String পঠন করার সুবিধা দেয় এবং নির্দিষ্ট বাইট সিকোয়েন্সে ডেটা পড়ে যা platform-independent।

প্রধান মেথড:

  • readInt() – একটি int ডেটা পড়ে।
  • readDouble() – একটি double ডেটা পড়ে।
  • readChar() – একটি char ডেটা পড়ে।
  • readUTF() – একটি String ডেটা পড়ে।

বৈশিষ্ট্য:

  • বাইনারি ডেটার সাথে কাজ করতে ব্যবহৃত হয়।
  • ডেটার প্রতিটি টাইপ সঠিকভাবে পড়ে (দ্বৈততা এবং সঠিকতা নিশ্চিত করতে)।
  • InputStream এর উপক্লাস, ফলে read() মেথডের মাধ্যমে বাইট পড়তে সক্ষম।

DataOutputStream এর ভূমিকা

DataOutputStream ক্লাসটি বাইনারি ডেটা লেখার জন্য ব্যবহৃত হয়। এটি primitive data types এবং String লেখার জন্য কার্যকরী, এবং প্রতিটি ডেটা প্ল্যাটফর্ম-নিরপেক্ষ ফর্ম্যাটে রাইট করে।

প্রধান মেথড:

  • writeInt() – একটি int ডেটা লেখে।
  • writeDouble() – একটি double ডেটা লেখে।
  • writeChar() – একটি char ডেটা লেখে।
  • writeUTF() – একটি String ডেটা লেখে।

বৈশিষ্ট্য:

  • বাইনারি ডেটা লেখার জন্য ব্যবহৃত হয়।
  • ডেটার প্রতিটি টাইপ সঠিকভাবে লেখার সুবিধা প্রদান করে।
  • OutputStream এর উপক্লাস, ফলে write() মেথডের মাধ্যমে ডেটা লিখতে সক্ষম।

DataInputStream এবং DataOutputStream ব্যবহারের সুবিধা:

  1. Primitive Data Type Serialization:
    • এগুলি primitive data types (যেমন int, double, char, boolean ইত্যাদি) পড়তে এবং লিখতে সহজ।
  2. Platform Independence:
    • DataInputStream এবং DataOutputStream প্ল্যাটফর্ম-নিরপেক্ষ ডেটা স্টোরেজ নিশ্চিত করে, যেহেতু তারা বাইট সিকোয়েন্সে ডেটা পড়ে এবং লেখে।
  3. Efficient Reading and Writing:
    • এই ক্লাসগুলি ডেটার প্রতিটি টাইপ দ্রুত এবং নির্ভুলভাবে পড়ে ও লেখে, বিশেষ করে binary data ব্যবহারের ক্ষেত্রে।

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

১. DataInputStream ব্যবহার করে ডেটা পড়া

import java.io.*;

public class DataInputStreamExample {
    public static void main(String[] args) {
        String fileName = "datafile.dat";
        
        try (DataInputStream dis = new DataInputStream(new FileInputStream(fileName))) {
            // primitive data types পড়া
            int integerData = dis.readInt();
            double doubleData = dis.readDouble();
            String stringData = dis.readUTF();
            
            System.out.println("Integer: " + integerData);
            System.out.println("Double: " + doubleData);
            System.out.println("String: " + stringData);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • এখানে datafile.dat ফাইল থেকে int, double, এবং String ডেটা পড়া হয়েছে। readInt(), readDouble(), এবং readUTF() মেথড ব্যবহার করে বিভিন্ন ধরনের ডেটা পড়া হয়েছে।

২. DataOutputStream ব্যবহার করে ডেটা লেখা

import java.io.*;

public class DataOutputStreamExample {
    public static void main(String[] args) {
        String fileName = "datafile.dat";
        
        try (DataOutputStream dos = new DataOutputStream(new FileOutputStream(fileName))) {
            // primitive data types লেখা
            dos.writeInt(100);
            dos.writeDouble(99.99);
            dos.writeUTF("Hello, World!");
            
            System.out.println("Data has been written to the file.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • এখানে int, double, এবং String ডেটা datafile.dat ফাইলে লেখা হয়েছে। writeInt(), writeDouble(), এবং writeUTF() মেথড ব্যবহার করা হয়েছে।

DataInputStream এবং DataOutputStream ব্যবহারের সীমাবদ্ধতা:

  1. Bigger Files:
    • Large files বা complex object serialization এর জন্য এগুলি কম কার্যকরী হতে পারে। এজন্য ObjectInputStream এবং ObjectOutputStream শ্রেষ্ঠ পছন্দ হতে পারে।
  2. Strict Format:
    • DataInputStream এবং DataOutputStream শুধুমাত্র primitive types এবং UTF-encoded strings কে সমর্থন করে, যা কিছু বিশেষ ধরনের ডেটার জন্য সীমাবদ্ধতা সৃষ্টি করতে পারে।

Best Practices for Using DataInputStream and DataOutputStream

  1. Use with Binary Data:
    • DataInputStream এবং DataOutputStream সাধারণত binary data পরিচালনার জন্য উপযুক্ত, তাই text files বা complex objects পড়তে এবং লেখার জন্য এগুলি ব্যবহার করবেন না।
  2. Close Streams Properly:
    • try-with-resources ব্লক ব্যবহার করুন যাতে স্ট্রিমগুলো বন্ধ হয়ে যায় এবং resource leakage প্রতিরোধ করা যায়।
  3. Error Handling:
    • প্রতিটি I/O অপারেশন করার সময় সঠিক exception handling ব্যবহার করুন, যেমন IOException
  4. Optimal Buffer Size:
    • যদি বড় পরিমাণ ডেটা পড়া বা লেখা হয়, তবে buffered streams ব্যবহার করুন যেমন BufferedInputStream এবং BufferedOutputStream

DataInputStream এবং DataOutputStream হল গুরুত্বপূর্ণ Java I/O ক্লাস যা primitive data types এবং UTF-encoded strings পড়া এবং লেখা সহজ করে তোলে। তারা platform-independent ডেটা প্রক্রিয়াকরণ নিশ্চিত করে এবং দ্রুত এবং সঠিকভাবে binary data স্টোরেজ এবং অ্যাক্সেসে সহায়ক। যদিও এগুলি কিছু সীমাবদ্ধতার সাথে আসে, তবে DataInputStream এবং DataOutputStream উভয়ই বড় এবং সাধারণ binary file ব্যবস্থাপনা করতে ব্যবহার করা হয়।

Content added By

Java-তে প্রিমিটিভ ডেটা টাইপ (যেমন int, float, boolean, ইত্যাদি) পড়া এবং লেখা একটি গুরুত্বপূর্ণ কাজ, বিশেষ করে যখন আপনি বাইনারি বা টেক্সট ফাইলের সাথে কাজ করছেন। Java Tuples ব্যবহার করে এই প্রিমিটিভ ডেটা টাইপগুলিকে Java I/O স্ট্রিম এর মাধ্যমে পড়া এবং লেখা সহজে করা যায়।

Java FileInputStream এবং FileOutputStream ব্যবহার করে আমরা বাইনারি ফাইল থেকে প্রিমিটিভ ডেটা পড়তে এবং লিখতে পারি। তবে, DataInputStream এবং DataOutputStream ক্লাসগুলি প্রিমিটিভ ডেটা টাইপের পড়া এবং লেখা আরও সহজ এবং কার্যকর করতে ব্যবহৃত হয়।

DataInputStream এবং DataOutputStream ক্লাস

  • DataInputStream এবং DataOutputStream ক্লাস ব্যবহার করে আপনি প্রিমিটিভ ডেটা টাইপ (যেমন int, float, boolean, double, ইত্যাদি) পড়তে এবং লেখতে পারেন।
  • এই ক্লাসগুলো binary data স্টোরেজ এবং cross-platform কার্যকারিতা নিশ্চিত করতে সাহায্য করে।

DataOutputStream (প্রিমিটিভ ডেটা লেখার জন্য)

  • writeInt(int v): একটি int লিখে।
  • writeFloat(float v): একটি float লিখে।
  • writeBoolean(boolean v): একটি boolean লিখে।
  • writeDouble(double v): একটি double লিখে।

DataInputStream (প্রিমিটিভ ডেটা পড়ার জন্য)

  • readInt(): একটি int পড়ে।
  • readFloat(): একটি float পড়ে।
  • readBoolean(): একটি boolean পড়ে।
  • readDouble(): একটি double পড়ে।

প্রিমিটিভ ডেটা টাইপ পড়া এবং লেখা: উদাহরণ

১. প্রিমিটিভ ডেটা লেখার উদাহরণ (DataOutputStream)

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

public class PrimitiveDataWriteExample {
    public static void main(String[] args) {
        try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.dat"))) {
            // প্রিমিটিভ ডেটা টাইপ লেখা
            dos.writeInt(123);        // লিখলাম একটি int
            dos.writeFloat(3.14f);    // লিখলাম একটি float
            dos.writeBoolean(true);   // লিখলাম একটি boolean
            dos.writeDouble(3.14159); // লিখলাম একটি double

            System.out.println("Primitive data written successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এই কোডে:

  • writeInt() দিয়ে একটি int ফাইলের মধ্যে লেখা হয়।
  • writeFloat() দিয়ে একটি float লেখা হয়।
  • writeBoolean() দিয়ে একটি boolean লেখা হয়।
  • writeDouble() দিয়ে একটি double লেখা হয়।

২. প্রিমিটিভ ডেটা পড়ার উদাহরণ (DataInputStream)

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

public class PrimitiveDataReadExample {
    public static void main(String[] args) {
        try (DataInputStream dis = new DataInputStream(new FileInputStream("data.dat"))) {
            // প্রিমিটিভ ডেটা টাইপ পড়া
            int i = dis.readInt();        // পড়লাম একটি int
            float f = dis.readFloat();    // পড়লাম একটি float
            boolean b = dis.readBoolean(); // পড়লাম একটি boolean
            double d = dis.readDouble();  // পড়লাম একটি double

            System.out.println("Read Data:");
            System.out.println("int: " + i);
            System.out.println("float: " + f);
            System.out.println("boolean: " + b);
            System.out.println("double: " + d);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এই কোডে:

  • readInt() দিয়ে একটি int পড়া হয়।
  • readFloat() দিয়ে একটি float পড়া হয়।
  • readBoolean() দিয়ে একটি boolean পড়া হয়।
  • readDouble() দিয়ে একটি double পড়া হয়।

Java Tuples ব্যবহার করে প্রিমিটিভ ডেটা স্টোর করা

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

উদাহরণ: Tuple ব্যবহার করে ফাইলের ডেটা ও আকার সংরক্ষণ

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.lang3.tuple.Pair;

public class TuplePrimitiveDataExample {
    public static void main(String[] args) {
        // ফাইলের প্রিমিটিভ ডেটা লেখার জন্য
        writePrimitiveData("data.dat");

        // ফাইল থেকে প্রিমিটিভ ডেটা পড়া এবং Tuple এ সংরক্ষণ
        Pair<String, Integer> fileData = readPrimitiveData("data.dat");
        System.out.println("File Name: " + fileData.getLeft());
        System.out.println("File Size: " + fileData.getRight() + " bytes");
    }

    public static void writePrimitiveData(String filename) {
        try (DataOutputStream dos = new DataOutputStream(new FileOutputStream(filename))) {
            dos.writeInt(123);        // লিখলাম একটি int
            dos.writeFloat(3.14f);    // লিখলাম একটি float
            dos.writeBoolean(true);   // লিখলাম একটি boolean
            dos.writeDouble(3.14159); // লিখলাম একটি double
            System.out.println("Primitive data written to " + filename);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static Pair<String, Integer> readPrimitiveData(String filename) {
        int fileSize = 0;
        try (DataInputStream dis = new DataInputStream(new FileInputStream(filename))) {
            int i = dis.readInt();        // পড়লাম একটি int
            float f = dis.readFloat();    // পড়লাম একটি float
            boolean b = dis.readBoolean(); // পড়লাম একটি boolean
            double d = dis.readDouble();  // পড়লাম একটি double

            // ফাইলের সাইজ নির্ধারণ
            fileSize = (int) new java.io.File(filename).length();

            System.out.println("Read Data:");
            System.out.println("int: " + i);
            System.out.println("float: " + f);
            System.out.println("boolean: " + b);
            System.out.println("double: " + d);
        } catch (IOException e) {
            e.printStackTrace();
        }

        return Pair.of(filename, fileSize);
    }
}

এই উদাহরণে:

  • Tuple এর মাধ্যমে ফাইলের নাম এবং সাইজ সংরক্ষণ করা হয় এবং পরবর্তীতে readPrimitiveData() মেথডে ফিরে আসে।
  • DataOutputStream ব্যবহার করে প্রিমিটিভ ডেটা ফাইলে লেখা হয়।
  • DataInputStream ব্যবহার করে প্রিমিটিভ ডেটা ফাইল থেকে পড়া হয়।

FileReader / FileWriter vs DataInputStream / DataOutputStream

বিষয়FileReader/FileWriterDataInputStream/DataOutputStream
ডেটা টাইপটেক্সট ডেটা (Character streams)প্রিমিটিভ ডেটা (Binary data)
ব্যবহারটেক্সট ফাইলের জন্য উপযুক্তবাইনারি ডেটা এবং প্রিমিটিভ ডেটা টাইপের জন্য
উপযুক্ত ক্ষেত্রটেক্সট ফাইল (যেমন .txt, .csv)প্রিমিটিভ ডেটা যেমন int, float, boolean, .dat ফাইল
স্ট্রিম টাইপCharacter Stream (16-বিট ক্যারেক্টার)Byte Stream (8-বিট বাইনারি)

  • DataInputStream এবং DataOutputStream প্রিমিটিভ ডেটা টাইপ (যেমন int, float, boolean, double) পড়া এবং লেখা করার জন্য একটি শক্তিশালী টুল।
  • Java Tuples ব্যবহার করে আমরা ফাইলের নাম, আকার, এবং অন্যান্য প্রোপার্টি একত্রে সংরক্ষণ করতে পারি।
  • FileReader এবং FileWriter শুধুমাত্র টেক্সট ডেটা নিয়ে কাজ করে, কিন্তু DataInputStream এবং DataOutputStream প্রিমিটিভ ডেটা টাইপের জন্য আরও উপযুক্ত।
Content added By

DataInputStream এবং DataOutputStream হল Java I/O ক্লাস যা প্রিমিটিভ ডেটা টাইপ (যেমন int, float, boolean, ইত্যাদি) পড়া এবং লেখা করতে ব্যবহৃত হয়। এই ক্লাসগুলির সাহায্যে আপনি বাইনারি ফরম্যাটে ডেটা স্ট্রিমের মাধ্যমে সরাসরি পড়তে এবং লিখতে পারেন।

  • DataInputStream: ডেটার বাইনারি ফরম্যাট থেকে প্রিমিটিভ ডেটা টাইপ পড়তে ব্যবহৃত।
  • DataOutputStream: প্রিমিটিভ ডেটা টাইপের ডেটা বাইনারি ফরম্যাটে লেখা।

এগুলি টেক্সট ডেটার পরিবর্তে বাইনারি ডেটা ম্যানিপুলেট করার জন্য ব্যবহৃত হয় এবং ডেটাকে নির্দিষ্ট আকারে (ফিক্সড সাইজ) ফাইল বা স্ট্রিমে লেখার সুবিধা দেয়।


DataInputStream এর ভূমিকা

DataInputStream ক্লাস বিভিন্ন প্রিমিটিভ ডেটা টাইপ (যেমন int, float, double, boolean ইত্যাদি) স্ট্রিম থেকে পড়ার জন্য ব্যবহৃত হয়। এটি সাধারণত ফাইল, নেটওয়ার্ক, অথবা মেমরি থেকে বাইনারি ডেটা পড়তে ব্যবহৃত হয়।

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

  • readInt(): স্ট্রিম থেকে একটি int মান পড়ে।
  • readFloat(): স্ট্রিম থেকে একটি float মান পড়ে।
  • readBoolean(): স্ট্রিম থেকে একটি boolean মান পড়ে।
  • readUTF(): স্ট্রিম থেকে একটি UTF স্ট্রিং পড়ে।

DataOutputStream এর ভূমিকা

DataOutputStream ক্লাস বিভিন্ন প্রিমিটিভ ডেটা টাইপ (যেমন int, float, double, boolean ইত্যাদি) স্ট্রিমে লেখার জন্য ব্যবহৃত হয়। এটি বাইনারি ফরম্যাটে ডেটা লেখে।

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

  • writeInt(int v): একটি int মান স্ট্রিমে লেখে।
  • writeFloat(float v): একটি float মান স্ট্রিমে লেখে।
  • writeBoolean(boolean v): একটি boolean মান স্ট্রিমে লেখে।
  • writeUTF(String str): একটি UTF স্ট্রিং স্ট্রিমে লেখে।

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

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

কোড উদাহরণ:

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class DataStreamExample {
    public static void main(String[] args) {
        // ডেটা লেখার জন্য DataOutputStream ব্যবহার
        try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.txt"))) {
            // বিভিন্ন প্রিমিটিভ ডেটা টাইপ লেখা
            dos.writeInt(123);       // int
            dos.writeFloat(3.14f);    // float
            dos.writeBoolean(true);   // boolean
            dos.writeUTF("Hello World!"); // String (UTF format)

            System.out.println("Data written successfully to data.txt");

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

        // ডেটা পড়ার জন্য DataInputStream ব্যবহার
        try (DataInputStream dis = new DataInputStream(new FileInputStream("data.txt"))) {
            // DataInputStream থেকে ডেটা পড়া
            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();
        }
    }
}

আউটপুট:

Data written successfully to data.txt
Read values from file:
int: 123
float: 3.14
boolean: true
String: Hello World!

Tuples ব্যবহার করে DataStream এর প্রোপার্টি সংরক্ষণ

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

কোড উদাহরণ:

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.lang3.tuple.Pair;

public class TupleDataStreamExample {
    public static void main(String[] args) {
        // ডেটা লেখার জন্য DataOutputStream ব্যবহার
        try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.txt"))) {
            // Tuple (Pair) এর মধ্যে ডেটা লিখা
            dos.writeInt(123);       // int
            dos.writeFloat(3.14f);    // float
            dos.writeBoolean(true);   // boolean
            dos.writeUTF("Hello World!"); // String (UTF format)
            System.out.println("Data written to data.txt using DataOutputStream");
        } catch (IOException e) {
            e.printStackTrace();
        }

        // ডেটা পড়ার জন্য DataInputStream ব্যবহার
        try (DataInputStream dis = new DataInputStream(new FileInputStream("data.txt"))) {
            // DataInputStream থেকে ডেটা পড়া
            int intValue = dis.readInt();
            float floatValue = dis.readFloat();
            boolean booleanValue = dis.readBoolean();
            String stringValue = dis.readUTF();

            // Tuple (Pair) এর মধ্যে ডেটা সংরক্ষণ
            Pair<String, Integer> fileInfo = new Pair<>("File Data", 123);

            // পড়া ডেটা এবং Tuple প্রিন্ট
Content added By
Promotion

Are you sure to start over?

Loading...