Java NIO (Non-blocking I/O) ফাইল এবং ডিরেক্টরি ম্যানেজমেন্টের জন্য একটি শক্তিশালী API প্রদান করে। এটি Java 7 তে java.nio.file প্যাকেজের মাধ্যমে পরিচিত হয়েছে, যা ফাইল এবং ডিরেক্টরি অপারেশনকে আরও কার্যকরী এবং স্কেলেবল করে তোলে। NIO API দিয়ে আপনি ফাইল তৈরি, ফাইল পড়া, ফাইল লেখা, ডিরেক্টরি তৈরি, ডিরেক্টরি লিস্টিং এবং অন্যান্য ফাইল-সংক্রান্ত অপারেশন করতে পারবেন।
এখানে আমরা Java NIO এর মাধ্যমে ফাইল এবং ডিরেক্টরি ম্যানেজমেন্টের কিছু সাধারণ কাজ দেখব, উদাহরণসহ।
১. ফাইল তৈরি এবং লেখার উদাহরণ
Java NIO ব্যবহার করে ফাইল তৈরি এবং ফাইলের মধ্যে ডেটা লেখা খুব সহজ। এখানে Files ক্লাসের createFile() এবং write() মেথড ব্যবহার করা হয়েছে।
উদাহরণ: ফাইল তৈরি এবং লেখা
import java.nio.file.*;
import java.nio.charset.StandardCharsets;
import java.io.IOException;
public class FileWriteExample {
public static void main(String[] args) {
Path path = Paths.get("example.txt");
// ফাইল তৈরি এবং লেখা
String content = "Hello, this is a file created with NIO!";
try {
// ফাইল তৈরি করা এবং লেখা
Files.write(path, content.getBytes(StandardCharsets.UTF_8));
System.out.println("File created and data written successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে, Files.write() মেথড দিয়ে example.txt ফাইলে ডেটা লেখা হয়েছে। যদি ফাইলটি আগে থেকে না থাকে, তবে এটি তৈরি হবে।
২. ফাইল পড়ার উদাহরণ
Java NIO তে Files.readAllLines() বা Files.readAllBytes() ব্যবহার করে ফাইল থেকে ডেটা পড়া যেতে পারে। নিচে readAllLines() ব্যবহার করা হয়েছে।
উদাহরণ: ফাইল পড়া
import java.nio.file.*;
import java.nio.charset.StandardCharsets;
import java.io.IOException;
import java.util.List;
public class FileReadExample {
public static void main(String[] args) {
Path path = Paths.get("example.txt");
try {
// ফাইল থেকে সমস্ত লাইন পড়া
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে, Files.readAllLines() ফাংশনটি example.txt ফাইলের সমস্ত লাইন পড়বে এবং সেগুলোকে প্রিন্ট করবে।
৩. ফাইলের তথ্য যাচাই করা
Java NIO তে Files ক্লাসের সাহায্যে ফাইলের প্রপার্টি যাচাই করা যেতে পারে, যেমন ফাইলটি কোন ধরনের (ফাইল, ডিরেক্টরি, অথবা একটি লিঙ্ক), ফাইলের সাইজ, অনুমতি ইত্যাদি।
উদাহরণ: ফাইলের তথ্য যাচাই করা
import java.nio.file.*;
import java.io.IOException;
public class FileInfoExample {
public static void main(String[] args) {
Path path = Paths.get("example.txt");
try {
// ফাইলের প্রপার্টি যাচাই করা
System.out.println("Is file? " + Files.isRegularFile(path));
System.out.println("Is directory? " + Files.isDirectory(path));
System.out.println("File size: " + Files.size(path) + " bytes");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে, Files.isRegularFile() এবং Files.isDirectory() মেথডগুলো ব্যবহার করে ফাইল এবং ডিরেক্টরি যাচাই করা হয়েছে, এবং Files.size() ব্যবহার করে ফাইলের সাইজ জানা গেছে।
৪. ডিরেক্টরি তৈরি এবং ফাইল ম্যানেজমেন্ট
Java NIO তে ডিরেক্টরি তৈরি, ডিরেক্টরি থেকে ফাইল লিস্টিং, এবং ফাইল ম্যানেজমেন্ট খুব সহজ। নিচে Files.createDirectory() এবং Files.list() ব্যবহার করা হয়েছে।
উদাহরণ: ডিরেক্টরি তৈরি এবং ফাইল লিস্টিং
import java.nio.file.*;
import java.io.IOException;
public class DirectoryManagementExample {
public static void main(String[] args) {
Path dirPath = Paths.get("myDirectory");
try {
// নতুন ডিরেক্টরি তৈরি করা
Files.createDirectory(dirPath);
System.out.println("Directory created successfully!");
// ডিরেক্টরির মধ্যে সমস্ত ফাইল লিস্টিং
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dirPath)) {
for (Path entry : stream) {
System.out.println(entry.getFileName());
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে, প্রথমে Files.createDirectory() ব্যবহার করে myDirectory নামে একটি নতুন ডিরেক্টরি তৈরি করা হয়েছে। তারপর DirectoryStream ব্যবহার করে ডিরেক্টরির মধ্যে ফাইলগুলোর নাম লিস্ট করা হয়েছে।
৫. ফাইল এবং ডিরেক্টরি মুছে ফেলা
Java NIO তে ফাইল এবং ডিরেক্টরি মুছে ফেলার জন্য Files.delete() মেথড ব্যবহার করা হয়। ডিরেক্টরি মুছে ফেলার জন্য ডিরেক্টরি যদি খালি না থাকে, তবে Files.delete() ব্যর্থ হবে।
উদাহরণ: ফাইল এবং ডিরেক্টরি মুছে ফেলা
import java.nio.file.*;
import java.io.IOException;
public class DeleteFileExample {
public static void main(String[] args) {
Path path = Paths.get("example.txt");
try {
// ফাইল মুছে ফেলা
Files.delete(path);
System.out.println("File deleted successfully!");
// ডিরেক্টরি মুছে ফেলা
Path dirPath = Paths.get("myDirectory");
Files.delete(dirPath);
System.out.println("Directory deleted successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে, Files.delete() ব্যবহার করে প্রথমে ফাইল এবং পরে ডিরেক্টরি মুছে ফেলা হয়েছে।
Java NIO ফাইল এবং ডিরেক্টরি ম্যানেজমেন্টের জন্য অত্যন্ত শক্তিশালী টুল প্রদান করে, যা I/O অপারেশনকে আরও দক্ষ, স্কেলেবল, এবং সহজ করে তোলে। Files এবং Path ক্লাসের মাধ্যমে আপনি ফাইল তৈরি, ফাইল পড়া, লেখা, ডিরেক্টরি তৈরি, ফাইলের তথ্য যাচাই, এবং মুছে ফেলা সহ বিভিন্ন ফাইল-সংক্রান্ত কাজ করতে পারবেন। Java NIO এর সাহায্যে ফাইল এবং ডিরেক্টরি ম্যানেজমেন্ট খুব সহজ, দ্রুত এবং সিস্টেমের পারফরম্যান্সে প্রভাব না ফেলে কার্যকরভাবে করা সম্ভব।
Read more