java.io প্যাকেজ হলো জাভার একটি প্রধান লাইব্রেরি, যা Input/Output (I/O) কার্যক্রম পরিচালনার জন্য প্রয়োজনীয় ক্লাস এবং ইন্টারফেস সরবরাহ করে। এটি ফাইল, ডেটা স্ট্রিম, অবজেক্ট সিরিয়ালাইজেশন, এবং অন্যান্য I/O কার্যক্রম সহজ এবং কার্যকরভাবে সম্পন্ন করতে ব্যবহৃত হয়।
java.io প্যাকেজের প্রধান বৈশিষ্ট্য
- Input এবং Output পরিচালনা:
- ফাইল, স্ট্রিং, অ্যারে, এবং নেটওয়ার্ক স্ট্রিম থেকে ডেটা পড়া এবং লেখা।
- Stream-Based I/O:
InputStreamএবংOutputStreamভিত্তিক বাইনারি ডেটা পরিচালনা।ReaderএবংWriterভিত্তিক টেক্সট ডেটা পরিচালনা।
- Object Serialization:
- Serialization এবং Deserialization এর মাধ্যমে অবজেক্টকে ফাইল বা স্ট্রিমে সংরক্ষণ এবং পুনরুদ্ধার করা।
- Error Handling:
IOExceptionএবং এর সাবক্লাস ব্যবহার করে I/O অপারেশনের সময় ত্রুটি হ্যান্ডলিং।
- Buffering:
- বড় ডেটা প্রসেসিংয়ের জন্য BufferedReader এবং BufferedWriter ব্যবহার।
java.io প্যাকেজের গুরুত্বপূর্ণ ক্লাস এবং ইন্টারফেস
| ক্লাস/ইন্টারফেস | বর্ণনা |
|---|---|
File | ফাইল বা ডিরেক্টরি পরিচালনার জন্য ব্যবহৃত। |
InputStream | বাইনারি ডেটা পড়ার জন্য বেস ক্লাস। |
OutputStream | বাইনারি ডেটা লেখার জন্য বেস ক্লাস। |
Reader | টেক্সট ডেটা পড়ার জন্য বেস ক্লাস। |
Writer | টেক্সট ডেটা লেখার জন্য বেস ক্লাস। |
BufferedReader | টেক্সট ডেটা পড়ার সময় ডেটা বাফারিং করে। |
BufferedWriter | টেক্সট ডেটা লেখার সময় ডেটা বাফারিং করে। |
ObjectInputStream | সিরিয়ালাইজড অবজেক্ট পড়তে ব্যবহৃত। |
ObjectOutputStream | অবজেক্ট সিরিয়ালাইজ করতে ব্যবহৃত। |
FileReader | ফাইল থেকে টেক্সট ডেটা পড়ার জন্য ব্যবহৃত। |
FileWriter | ফাইলে টেক্সট ডেটা লেখার জন্য ব্যবহৃত। |
IOException | I/O কার্যক্রমে ত্রুটি হ্যান্ডলিংয়ের জন্য ব্যবহৃত। |
java.io প্যাকেজের ব্যবহারিক উদাহরণ
১. ফাইল তৈরি এবং মুছে ফেলা
কোড উদাহরণ:
import java.io.File;
import java.io.IOException;
public class FileExample {
public static void main(String[] args) {
try {
// ফাইল তৈরি
File file = new File("example.txt");
if (file.createNewFile()) {
System.out.println("File created: " + file.getName());
} else {
System.out.println("File already exists.");
}
// ফাইল মুছে ফেলা
if (file.delete()) {
System.out.println("Deleted the file: " + file.getName());
} else {
System.out.println("Failed to delete the file.");
}
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
২. ফাইলে লেখা এবং পড়া (FileWriter এবং FileReader)
কোড উদাহরণ:
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;
public class FileReadWriteExample {
public static void main(String[] args) {
// ফাইলে লেখা
try (FileWriter writer = new FileWriter("example.txt")) {
writer.write("Hello, Java IO!");
System.out.println("Successfully wrote to the file.");
} catch (IOException e) {
System.out.println("An error occurred while writing.");
e.printStackTrace();
}
// ফাইল থেকে পড়া
try (FileReader reader = new FileReader("example.txt")) {
int character;
while ((character = reader.read()) != -1) {
System.out.print((char) character);
}
} catch (IOException e) {
System.out.println("An error occurred while reading.");
e.printStackTrace();
}
}
}
৩. BufferedReader এবং BufferedWriter ব্যবহার
কোড উদাহরণ:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedExample {
public static void main(String[] args) {
// ফাইলে লেখা
try (BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"))) {
writer.write("This is an example of BufferedWriter.");
System.out.println("Successfully written using BufferedWriter.");
} catch (IOException e) {
System.out.println("An error occurred while writing.");
e.printStackTrace();
}
// ফাইল থেকে পড়া
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println("An error occurred while reading.");
e.printStackTrace();
}
}
}
৪. অবজেক্ট সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন
কোড উদাহরণ:
import java.io.*;
class Student implements Serializable {
private static final long serialVersionUID = 1L;
String name;
int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
}
public class SerializationExample {
public static void main(String[] args) {
Student student = new Student("Alice", 22);
// সিরিয়ালাইজেশন
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("student.ser"))) {
out.writeObject(student);
System.out.println("Object serialized successfully.");
} catch (IOException e) {
e.printStackTrace();
}
// ডেসিরিয়ালাইজেশন
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("student.ser"))) {
Student deserializedStudent = (Student) in.readObject();
System.out.println("Deserialized Student: " + deserializedStudent.name + ", " + deserializedStudent.age);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
java.io প্যাকেজের সুবিধা
- স্ট্রিম-ভিত্তিক I/O: বড় ডেটা সহজে পরিচালনা করা যায়।
- Serialization Support: অবজেক্ট স্টোরেজ এবং ডেটা শেয়ারিং সহজ।
- File Management: ফাইল এবং ডিরেক্টরি পরিচালনা সহজ।
- Flexible API: বিভিন্ন ডেটা ফরম্যাট এবং সোর্স থেকে ডেটা অ্যাক্সেস।
java.io প্যাকেজের সীমাবদ্ধতা
- বেশি মেমরি খরচ: বড় ডেটা প্রসেসিংয়ে বেশি মেমরি খরচ হয়।
- Complexity in Large Applications: বড় অ্যাপ্লিকেশনে ব্যবহারে জটিল হতে পারে।
- Asynchronous Support এর অভাব:
java.nioতে থাকা Non-blocking I/O সাপোর্ট নেই।
java.io প্যাকেজ জাভার একটি শক্তিশালী প্যাকেজ যা I/O Operations, File Management, এবং Serialization এর জন্য অপরিহার্য। এটি ছোট এবং বড় অ্যাপ্লিকেশন উভয়ের জন্য কার্যকর। তবে বড় ডেটা বা নন-ব্লকিং প্রসেসের জন্য java.nio বিবেচনা করা যেতে পারে।
Content added By
Read more