Java NIO (New I/O) এর Files ক্লাসটি ফাইল সিস্টেম অপারেশন পরিচালনা করতে একটি সহজ এবং কার্যকরী পদ্ধতি প্রদান করে। এটি java.nio.file প্যাকেজে অন্তর্ভুক্ত এবং ফাইল তৈরি, কপি, মুভ, ডিলিট সহ বিভিন্ন ফাইল সম্পর্কিত কাজের জন্য প্রয়োজনীয় মেথড সরবরাহ করে। Files ক্লাসটি NIO এর মাধ্যমে ফাইল সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার জন্য একটি আধুনিক এবং উন্নত API প্রদান করে।
এখানে Files ক্লাসের বিভিন্ন মেথডের ব্যবহার আলোচনা করা হলো, যা ফাইল সিস্টেমে বিভিন্ন অপারেশন যেমন ফাইল তৈরি, কপি, মুভ, ডিলিট এবং অন্যান্য কাজ করতে সাহায্য করবে।
Files ক্লাসের প্রধান মেথডগুলি
১. createFile(Path path, FileAttribute<?>... attrs)
এই মেথডটি একটি নতুন ফাইল তৈরি করে। যদি ফাইলটি ইতিমধ্যেই উপস্থিত থাকে, তবে এটি একটি FileAlreadyExistsException ছুঁড়ে ফেলে।
উদাহরণ:
import java.nio.file.*;
import java.io.IOException;
Path path = Paths.get("newFile.txt");
try {
Files.createFile(path);
System.out.println("File created successfully!");
} catch (IOException e) {
System.out.println("Error creating file: " + e.getMessage());
}
এই উদাহরণে, newFile.txt নামে একটি নতুন ফাইল তৈরি করা হচ্ছে।
২. copy(Path source, Path target, CopyOption... options)
এই মেথডটি একটি ফাইল বা ডিরেক্টরি কপি করে। আপনি কপি অপশন ব্যবহার করতে পারেন যেমন REPLACE_EXISTING যদি লক্ষ্য ফাইলটি পূর্বে উপস্থিত থাকে।
উদাহরণ:
import java.nio.file.*;
import java.io.IOException;
Path source = Paths.get("sourceFile.txt");
Path target = Paths.get("targetFile.txt");
try {
Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
System.out.println("File copied successfully!");
} catch (IOException e) {
System.out.println("Error copying file: " + e.getMessage());
}
এই উদাহরণে, sourceFile.txt ফাইলটি targetFile.txt এ কপি করা হচ্ছে এবং যদি লক্ষ্য ফাইলটি ইতিমধ্যেই থাকে তবে তা প্রতিস্থাপিত হবে।
৩. move(Path source, Path target, CopyOption... options)
এই মেথডটি একটি ফাইল বা ডিরেক্টরি মুভ করে। আপনি StandardCopyOption.REPLACE_EXISTING অপশন ব্যবহার করতে পারেন যদি লক্ষ্য ফাইলটি ইতিমধ্যেই থাকে।
উদাহরণ:
import java.nio.file.*;
import java.io.IOException;
Path source = Paths.get("sourceFile.txt");
Path target = Paths.get("movedFile.txt");
try {
Files.move(source, target, StandardCopyOption.REPLACE_EXISTING);
System.out.println("File moved successfully!");
} catch (IOException e) {
System.out.println("Error moving file: " + e.getMessage());
}
এখানে, sourceFile.txt ফাইলটি movedFile.txt নামে স্থানান্তরিত হচ্ছে।
৪. delete(Path path)
এই মেথডটি একটি ফাইল বা ডিরেক্টরি মুছে ফেলে। যদি ফাইলটি না থাকে, তবে এটি একটি NoSuchFileException ছুঁড়ে ফেলে।
উদাহরণ:
import java.nio.file.*;
import java.io.IOException;
Path path = Paths.get("fileToDelete.txt");
try {
Files.delete(path);
System.out.println("File deleted successfully!");
} catch (IOException e) {
System.out.println("Error deleting file: " + e.getMessage());
}
এখানে, fileToDelete.txt ফাইলটি মুছে ফেলা হচ্ছে।
৫. deleteIfExists(Path path)
এই মেথডটি একটি ফাইল বা ডিরেক্টরি মুছে ফেলে, তবে যদি ফাইলটি না থাকে, তাহলে এটি কোন এক্সসেপশন ছুঁড়ে না।
উদাহরণ:
import java.nio.file.*;
import java.io.IOException;
Path path = Paths.get("fileToDeleteIfExists.txt");
try {
if (Files.deleteIfExists(path)) {
System.out.println("File deleted successfully!");
} else {
System.out.println("File did not exist.");
}
} catch (IOException e) {
System.out.println("Error deleting file: " + e.getMessage());
}
এখানে, fileToDeleteIfExists.txt ফাইলটি মুছে ফেলা হচ্ছে যদি এটি উপস্থিত থাকে।
৬. exists(Path path, LinkOption... options)
এই মেথডটি চেক করে যে নির্দিষ্ট পাথের ফাইল বা ডিরেক্টরি উপস্থিত আছে কিনা। এটি একটি বুলিয়ান মান প্রদান করে।
উদাহরণ:
import java.nio.file.*;
Path path = Paths.get("checkFile.txt");
if (Files.exists(path)) {
System.out.println("File exists.");
} else {
System.out.println("File does not exist.");
}
এখানে, checkFile.txt ফাইলটির অস্তিত্ব যাচাই করা হচ্ছে।
৭. readAllLines(Path path, Charset cs)
এই মেথডটি একটি ফাইলের সমস্ত লাইন পড়ে এবং একটি List<String> রিটার্ন করে। এটি Charset অপশন গ্রহণ করে, যার মাধ্যমে আপনি ফাইলের এনকোডিং নির্ধারণ করতে পারেন।
উদাহরণ:
import java.nio.file.*;
import java.nio.charset.*;
import java.io.IOException;
import java.util.List;
Path path = Paths.get("readFile.txt");
try {
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println("Error reading file: " + e.getMessage());
}
এখানে, readFile.txt ফাইলের সমস্ত লাইন পড়া হচ্ছে এবং তা কনসোলে আউটপুট করা হচ্ছে।
৮. write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options)
এই মেথডটি একটি ফাইলতে লাইন লেখা শুরু করে এবং ফাইলের এনকোডিং নির্ধারণ করার জন্য Charset অপশন গ্রহণ করে।
উদাহরণ:
import java.nio.file.*;
import java.nio.charset.*;
import java.io.IOException;
import java.util.Arrays;
Path path = Paths.get("writeFile.txt");
try {
Files.write(path, Arrays.asList("Hello", "Java NIO"), StandardCharsets.UTF_8, StandardOpenOption.CREATE);
System.out.println("Data written successfully!");
} catch (IOException e) {
System.out.println("Error writing file: " + e.getMessage());
}
এখানে, "Hello" এবং "Java NIO" লাইন দুটি writeFile.txt ফাইলে লেখা হচ্ছে।
Java NIO তে Files ক্লাসের বিভিন্ন মেথড ব্যবহার করে আপনি ফাইল সম্পর্কিত বিভিন্ন কাজ খুব সহজেই করতে পারেন, যেমন ফাইল তৈরি, কপি, মুভ, ডিলিট, এবং ডিরেক্টরি পরিচালনা। createFile, copy, move, delete, এবং readAllLines এর মতো মেথডগুলি Java NIO API কে আরো শক্তিশালী এবং কার্যকরী করে তোলে। এগুলি উচ্চ পারফরম্যান্স ফাইল সিস্টেম অপারেশন পরিচালনা করতে ব্যবহৃত হয়, বিশেষত বড় ডেটা সেট এবং অ্যাসিনক্রোনাস ফাইল অপারেশনগুলির জন্য।
Read more