Apache Commons IO হল একটি ওপেন সোর্স Java লাইব্রেরি যা I/O (Input/Output) অপারেশনগুলোকে সহজতর এবং কার্যকরী করতে সাহায্য করে। এটি Java I/O API এর বাইরের কিছু অতিরিক্ত ইউটিলিটি ক্লাস সরবরাহ করে যা ফাইল অপারেশন, স্ট্রিম ম্যানিপুলেশন, ফাইল ফিল্টারিং, ফাইল কনভার্সন এবং অন্যান্য I/O সম্পর্কিত কাজগুলোকে আরও সহজ, দ্রুত এবং শক্তিশালী করে তোলে। Apache Commons IO লাইব্রেরি বিশেষভাবে উন্নত এবং অপটিমাইজড ফাংশন সরবরাহ করে, যা Java ডেভেলপারদের ফাইল এবং ডিরেক্টরি অপারেশনগুলো দ্রুত এবং কার্যকরভাবে সম্পাদন করতে সাহায্য করে।
এই লাইব্রেরির মূল উদ্দেশ্য হল Java I/O API এর কাজগুলোকে আরও সোজা, দ্রুত এবং সহজ করা, যাতে ডেভেলপারদের বারবার একই ধরনের I/O অপারেশনগুলি না করতে হয়। এতে ফাইল কপি, ফাইল ম্যানিপুলেশন, স্ট্রিম রিডিং, এবং রাইটিং, ফাইল ফিল্টারিং ইত্যাদি অনেক ধরনের কাজ সহজ হয়ে যায়।
Apache Commons IO লাইব্রেরির কয়েকটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা Java I/O অপারেশনগুলোকে আরও শক্তিশালী এবং কার্যকরী করে তোলে:
.txt
ফাইলের জন্য ফিল্টারিং)Apache Commons IO লাইব্রেরি বিভিন্ন কাজের জন্য নানা ক্লাস সরবরাহ করে, যার মধ্যে FileUtils, IOUtils, FilenameUtils, DirectoryWalker, FileFilter প্রভৃতি উল্লেখযোগ্য। নিচে কিছু সাধারণ ক্লাস এবং তাদের কার্যাবলী আলোচনা করা হল।
FileUtils
হল এমন একটি ক্লাস যা ফাইল সম্পর্কিত বিভিন্ন অপারেশন যেমন ফাইল কপি, মুভ, ডিলিট ইত্যাদি দ্রুত এবং সহজভাবে করার জন্য ব্যবহৃত হয়।
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileUtilsExample {
public static void main(String[] args) {
File sourceFile = new File("source.txt");
File destinationFile = new File("destination.txt");
try {
// Copy file using FileUtils
FileUtils.copyFile(sourceFile, destinationFile);
System.out.println("File copied successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
IOUtils
ক্লাসটি Java I/O স্ট্রিম অপারেশনগুলিকে সহজ করে তোলে। এটি স্ট্রিম রিডিং, রাইটিং, কপি ইত্যাদি কাজ দ্রুত এবং কার্যকরভাবে সম্পাদন করতে সহায়তা করে।
import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOUtilsExample {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("source.txt");
FileOutputStream fos = new FileOutputStream("destination.txt")) {
// Copy content from source file to destination using IOUtils
IOUtils.copy(fis, fos);
System.out.println("Content copied successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
FilenameUtils
ক্লাসটি ফাইলের নামের সাথে বিভিন্ন কাজ যেমন এক্সটেনশন বের করা, পাথ তৈরি করা ইত্যাদি কাজ করতে ব্যবহৃত হয়।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String fileName = "document.txt";
// Get the file extension
String extension = FilenameUtils.getExtension(fileName);
System.out.println("File extension: " + extension); // Output: txt
}
}
DirectoryWalker
ক্লাসটি ডিরেক্টরি এবং তার সাব-ডিরেক্টরি গুলির মধ্যে ফাইল খুঁজতে ব্যবহৃত হয়।
import org.apache.commons.io.DirectoryWalker;
import java.io.File;
import java.util.List;
public class DirectoryWalkerExample {
public static void main(String[] args) {
File dir = new File("/path/to/directory");
DirectoryWalker walker = new DirectoryWalker() {
@Override
protected void handleFile(File file, int depth, List results) {
System.out.println("File: " + file.getName());
}
};
try {
// Walk through the directory
walker.walk(dir, null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
DirectoryWalker
এবং FileFilter
এর মাধ্যমে ডিরেক্টরি স্ক্যান এবং ফাইল ফিল্টারিং অত্যন্ত সহজ হয়।Apache Commons IO একটি শক্তিশালী এবং অত্যন্ত কার্যকরী লাইব্রেরি যা Java I/O অপারেশনগুলিকে দ্রুত, কার্যকর এবং সহজ করে তোলে। এটি FileUtils, IOUtils, FilenameUtils, DirectoryWalker এবং FileFilter এর মতো ক্লাসের মাধ্যমে ফাইল ম্যানিপুলেশন, স্ট্রিম রিডিং/রাইটিং এবং ডিরেক্টরি অপারেশনগুলোকে আরও দক্ষ এবং সাশ্রয়ী করে তোলে। Apache Commons IO ব্যবহারের মাধ্যমে Java ডেভেলপাররা সহজে এবং দ্রুত I/O সম্পর্কিত কাজগুলো সম্পাদন করতে সক্ষম হন।
common.read_more