DataInputStream এবং DataOutputStream ক্লাসগুলি Java I/O প্যাকেজের অংশ এবং তারা primitive data types (যেমন int, float, double, boolean ইত্যাদি) এবং String ডেটা বাইনারি ফরম্যাটে পড়া এবং লেখা করার জন্য ব্যবহৃত হয়। এই ক্লাসগুলির সাহায্যে আপনি ডেটা স্ট্রিমের মাধ্যমে platform-independent এবং compact data পরিচালনা করতে পারেন।
DataInputStream এবং DataOutputStream এর ভূমিকা
- DataInputStream:
- DataInputStream ক্লাসটি primitive data types এবং String ডেটা পড়তে ব্যবহৃত হয়।
- এটি ডেটা পড়ার জন্য binary format ব্যবহার করে, যার ফলে এটি দ্রুত এবং কার্যকরী।
- 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 এর ব্যবহার:
- ফাইল থেকে ডেটা পড়া এবং লেখা:
- এটি প্রধানত binary data (যেমন int, float, String) পড়তে এবং লিখতে ব্যবহৃত হয়। উদাহরণস্বরূপ, ডেটাবেসে ডেটা সংরক্ষণ বা ফাইল এক্সচেঞ্জে সাহায্য করে।
- Portable Data:
- DataInputStream এবং DataOutputStream ব্যবহার করে ডেটা লেখার সময় ডেটা স্ট্রিমের মাধ্যমে এটি platform-independent হয়, অর্থাৎ এক সিস্টেমে লেখা ডেটা অন্য সিস্টেমে পড়া যায়।
- 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 ডেটা স্টোরেজ এবং ট্রান্সফার নিশ্চিত করার জন্য এই স্ট্রিমগুলির ব্যবহার একটি আদর্শ সমাধান।
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 ব্যবহারের সুবিধা:
- Primitive Data Type Serialization:
- এগুলি primitive data types (যেমন
int,double,char,booleanইত্যাদি) পড়তে এবং লিখতে সহজ।
- এগুলি primitive data types (যেমন
- Platform Independence:
DataInputStreamএবংDataOutputStreamপ্ল্যাটফর্ম-নিরপেক্ষ ডেটা স্টোরেজ নিশ্চিত করে, যেহেতু তারা বাইট সিকোয়েন্সে ডেটা পড়ে এবং লেখে।
- 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 ব্যবহারের সীমাবদ্ধতা:
- Bigger Files:
- Large files বা complex object serialization এর জন্য এগুলি কম কার্যকরী হতে পারে। এজন্য ObjectInputStream এবং ObjectOutputStream শ্রেষ্ঠ পছন্দ হতে পারে।
- Strict Format:
DataInputStreamএবংDataOutputStreamশুধুমাত্র primitive types এবং UTF-encoded strings কে সমর্থন করে, যা কিছু বিশেষ ধরনের ডেটার জন্য সীমাবদ্ধতা সৃষ্টি করতে পারে।
Best Practices for Using DataInputStream and DataOutputStream
- Use with Binary Data:
DataInputStreamএবংDataOutputStreamসাধারণত binary data পরিচালনার জন্য উপযুক্ত, তাই text files বা complex objects পড়তে এবং লেখার জন্য এগুলি ব্যবহার করবেন না।
- Close Streams Properly:
- try-with-resources ব্লক ব্যবহার করুন যাতে স্ট্রিমগুলো বন্ধ হয়ে যায় এবং resource leakage প্রতিরোধ করা যায়।
- Error Handling:
- প্রতিটি I/O অপারেশন করার সময় সঠিক exception handling ব্যবহার করুন, যেমন
IOException।
- প্রতিটি I/O অপারেশন করার সময় সঠিক exception handling ব্যবহার করুন, যেমন
- Optimal Buffer Size:
- যদি বড় পরিমাণ ডেটা পড়া বা লেখা হয়, তবে buffered streams ব্যবহার করুন যেমন
BufferedInputStreamএবংBufferedOutputStream।
- যদি বড় পরিমাণ ডেটা পড়া বা লেখা হয়, তবে buffered streams ব্যবহার করুন যেমন
DataInputStream এবং DataOutputStream হল গুরুত্বপূর্ণ Java I/O ক্লাস যা primitive data types এবং UTF-encoded strings পড়া এবং লেখা সহজ করে তোলে। তারা platform-independent ডেটা প্রক্রিয়াকরণ নিশ্চিত করে এবং দ্রুত এবং সঠিকভাবে binary data স্টোরেজ এবং অ্যাক্সেসে সহায়ক। যদিও এগুলি কিছু সীমাবদ্ধতার সাথে আসে, তবে DataInputStream এবং DataOutputStream উভয়ই বড় এবং সাধারণ binary file ব্যবস্থাপনা করতে ব্যবহার করা হয়।
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/FileWriter | DataInputStream/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 প্রিমিটিভ ডেটা টাইপের জন্য আরও উপযুক্ত।
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 প্রিন্ট
Read more