Java File Class হল java.io প্যাকেজের একটি ক্লাস, যা ফাইল এবং ডিরেক্টরির প্রোপার্টি ম্যানেজমেন্ট ও ম্যানিপুলেশন পরিচালনা করতে ব্যবহৃত হয়। এটি মূলত ফাইল তৈরি, মুছে ফেলা, এবং ফাইল বা ডিরেক্টরির প্রোপার্টি সংগ্রহ করার জন্য ব্যবহৃত হয়। File ক্লাস ফাইলের ডেটা পড়া বা লেখার কাজ সরাসরি করতে পারে না; বরং এটি স্ট্রিম বা রিডার/রাইটারের মাধ্যমে পরিচালিত হয়।
File Class এর গুরুত্বপূর্ণ বৈশিষ্ট্য
- File এবং Directory Management:
- ফাইল তৈরি, মুছে ফেলা এবং ম্যানেজ করা।
- ডিরেক্টরি তৈরি এবং মুছে ফেলা।
- File Information Access:
- ফাইল বা ডিরেক্টরির নাম, পাথ, সাইজ ইত্যাদি তথ্য সংগ্রহ।
- File Permission:
- ফাইলের রিড, রাইট এবং এক্সিকিউট পারমিশন চেক।
File Class এর গুরুত্বপূর্ণ মেথড
| মেথড | বর্ণনা |
|---|---|
createNewFile() | একটি নতুন ফাইল তৈরি করে। |
delete() | ফাইল বা ডিরেক্টরি মুছে ফেলে। |
exists() | চেক করে ফাইল বা ডিরেক্টরি বিদ্যমান কিনা। |
getName() | ফাইলের নাম রিটার্ন করে। |
getAbsolutePath() | ফাইলের সম্পূর্ণ পাথ রিটার্ন করে। |
isDirectory() | চেক করে এটি ডিরেক্টরি কিনা। |
isFile() | চেক করে এটি ফাইল কিনা। |
length() | ফাইলের সাইজ রিটার্ন করে। |
mkdir() | একটি নতুন ডিরেক্টরি তৈরি করে। |
list() | ডিরেক্টরির ফাইল বা ডিরেক্টরির লিস্ট রিটার্ন করে। |
File Class এর উদাহরণ
১. একটি নতুন ফাইল তৈরি করা এবং মুছে ফেলা
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();
}
}
}
আউটপুট:
File created: example.txt
Deleted the file: example.txt
২. ফাইল বা ডিরেক্টরির প্রোপার্টি সংগ্রহ করা
import java.io.File;
public class FilePropertiesExample {
public static void main(String[] args) {
File file = new File("example.txt");
if (file.exists()) {
System.out.println("File Name: " + file.getName());
System.out.println("Absolute Path: " + file.getAbsolutePath());
System.out.println("Writeable: " + file.canWrite());
System.out.println("Readable: " + file.canRead());
System.out.println("File Size: " + file.length() + " bytes");
} else {
System.out.println("The file does not exist.");
}
}
}
৩. একটি ডিরেক্টরি তৈরি এবং এর কন্টেন্ট লিস্ট করা
import java.io.File;
public class DirectoryExample {
public static void main(String[] args) {
// একটি নতুন ডিরেক্টরি তৈরি
File directory = new File("TestDirectory");
if (directory.mkdir()) {
System.out.println("Directory created: " + directory.getName());
} else {
System.out.println("Directory already exists.");
}
// ডিরেক্টরির কন্টেন্ট লিস্ট করা
String[] files = directory.list();
if (files != null) {
System.out.println("Directory contents:");
for (String file : files) {
System.out.println(file);
}
} else {
System.out.println("The directory is empty or does not exist.");
}
}
}
৪. একটি ফাইল চেক করা এটি ফাইল না ডিরেক্টরি
import java.io.File;
public class CheckFileOrDirectory {
public static void main(String[] args) {
File file = new File("example.txt");
if (file.exists()) {
if (file.isFile()) {
System.out.println(file.getName() + " is a file.");
} else if (file.isDirectory()) {
System.out.println(file.getName() + " is a directory.");
}
} else {
System.out.println("The file or directory does not exist.");
}
}
}
৫. টাপল (Tuples) ব্যবহার করে ফাইল প্রোপার্টি রিটার্ন করা
Java Tuples এর মাধ্যমে ফাইল বা ডিরেক্টরির প্রোপার্টি একত্রে রিটার্ন করতে পারেন।
Apache Commons Lang Tuples উদাহরণ:
import org.apache.commons.lang3.tuple.Pair;
import java.io.File;
public class FileWithTuple {
public static Pair<String, Long> getFileInfo(String filePath) {
File file = new File(filePath);
if (file.exists() && file.isFile()) {
return Pair.of(file.getName(), file.length());
} else {
return Pair.of("File does not exist", 0L);
}
}
public static void main(String[] args) {
Pair<String, Long> fileInfo = getFileInfo("example.txt");
System.out.println("File Name: " + fileInfo.getLeft());
System.out.println("File Size: " + fileInfo.getRight() + " bytes");
}
}
File Class এর সুবিধা
- File এবং Directory Management সহজ: ফাইল বা ডিরেক্টরি তৈরি, মুছে ফেলা এবং তাদের প্রোপার্টি সংগ্রহ করা সহজ।
- Cross-Platform Support: Java File API বিভিন্ন প্ল্যাটফর্মে সমানভাবে কাজ করে।
- I/O Integration: File Class সহজেই Java I/O এবং NIO এর সাথে কাজ করতে পারে।
File Class এর সীমাবদ্ধতা
- Direct Data Access নেই: File Class শুধুমাত্র ফাইলের প্রোপার্টি ম্যানেজ করে। ডেটা পড়া/লেখা করার জন্য Stream বা Reader/Writer প্রয়োজন।
- Performance: বড় স্কেল ফাইল ম্যানেজমেন্ট সিস্টেমে এটি ধীর হতে পারে।
- Error Handling: I/O Exceptions সঠিকভাবে পরিচালনা করা প্রয়োজন।
Java File Class ফাইল এবং ডিরেক্টরির ম্যানেজমেন্টের জন্য একটি শক্তিশালী এবং সহজ সরঞ্জাম। এটি File Creation, Deletion, এবং Properties Management এর জন্য ব্যবহার করা হয়। Tuples এর সাথে File Class ব্যবহার করলে কোড আরও সংক্ষিপ্ত এবং কার্যকর হয়।
ব্যবহারিক ক্ষেত্রে:
- ছোট ফাইল ম্যানেজমেন্ট টুল তৈরি করতে File Class ব্যবহার করুন।
- বড় স্কেল সিস্টেমের জন্য NIO বা অন্যান্য উন্নত টুল বিবেচনা করুন।
Read more