Apache Commons IO লাইব্রেরি FileUtils ক্লাস সরবরাহ করে যা ফাইল ও ডিরেক্টরি সম্পর্কিত কার্যাবলী অনেক সহজ করে তোলে। এর মধ্যে অন্যতম গুরুত্বপূর্ণ কার্যাবলী হলো ফাইল কপি করা এবং ডিরেক্টরি কপি করা। copyFile() এবং copyDirectory() মেথডগুলি এই কার্যাবলী সম্পাদন করতে ব্যবহৃত হয়।
FileUtils.copyFile() এবং FileUtils.copyDirectory() মেথডগুলি ফাইল বা ডিরেক্টরি কপি করার জন্য খুবই কার্যকরী এবং সহজ ব্যবহারযোগ্য। এই মেথডগুলো IOException ছুঁড়ে ফেলে, তাই এগুলি ব্যবহারের সময় exception handling করা উচিত।
copyFile() মেথডটি ব্যবহার করে আপনি একটি ফাইলকে এক স্থান থেকে অন্য স্থানে কপি করতে পারেন। এটি একটি ফাইলের সমস্ত কন্টেন্ট এবং মেটাডেটা কপি করে।
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class CopyFileExample {
public static void main(String[] args) {
try {
File sourceFile = new File("source.txt"); // সোর্স ফাইল
File destinationFile = new File("destination.txt"); // গন্তব্য ফাইল
// ফাইল কপি করা
FileUtils.copyFile(sourceFile, destinationFile);
System.out.println("ফাইল কপি সফল!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
আউটপুট:
ফাইল কপি সফল!
copyDirectory() মেথডটি ব্যবহার করে আপনি একটি ডিরেক্টরি এবং তার মধ্যে থাকা সমস্ত ফাইল এবং সাবডিরেক্টরিগুলো কপি করতে পারেন। এটি রিকার্সিভলি (recursive) কাজ করে, অর্থাৎ ডিরেক্টরি এবং তার ভিতরের সমস্ত উপাদান কপি করবে।
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class CopyDirectoryExample {
public static void main(String[] args) {
try {
File sourceDir = new File("sourceDir"); // সোর্স ডিরেক্টরি
File destDir = new File("destinationDir"); // গন্তব্য ডিরেক্টরি
// ডিরেক্টরি কপি করা
FileUtils.copyDirectory(sourceDir, destDir);
System.out.println("ডিরেক্টরি কপি সফল!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
আউটপুট:
ডিরেক্টরি কপি সফল!
FileUtils.copyFile() এবং FileUtils.copyDirectory() মেথডের কিছু অতিরিক্ত ফিচার রয়েছে, যেমন ফাইল কপি করার সময় overwrite করা, অথবা filtering করা (যেমন, শুধুমাত্র নির্দিষ্ট ফাইল কপি করা)।
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class CopyFileWithOverwriteExample {
public static void main(String[] args) {
try {
File sourceFile = new File("source.txt"); // সোর্স ফাইল
File destinationFile = new File("destination.txt"); // গন্তব্য ফাইল
// ফাইল কপি করা, যদি গন্তব্য ফাইল আগে থেকেই থাকে তবে তার উপরে লেখা হবে
FileUtils.copyFile(sourceFile, destinationFile);
System.out.println("ফাইল কপি সফল, আগের ফাইলটি ওভাররাইট করা হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.filefilter.WildcardFileFilter;
public class CopyDirectoryWithFilterExample {
public static void main(String[] args) {
try {
File sourceDir = new File("sourceDir"); // সোর্স ডিরেক্টরি
File destDir = new File("destinationDir"); // গন্তব্য ডিরেক্টরি
// শুধু .txt ফাইল কপি করা
FileUtils.copyDirectory(sourceDir, destDir, new WildcardFileFilter("*.txt"));
System.out.println("ফাইল ফিল্টারিং সহ ডিরেক্টরি কপি সফল!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
copyDirectoryToDirectory(): একটি ডিরেক্টরি অন্য একটি ডিরেক্টরির মধ্যে কপি করার জন্য ব্যবহৃত হয়।
File sourceDir = new File("sourceDir");
File destinationDir = new File("destinationDir");
FileUtils.copyDirectoryToDirectory(sourceDir, destinationDir);
copyFileToDirectory(): একটি ফাইল একটি ডিরেক্টরির মধ্যে কপি করার জন্য ব্যবহৃত হয়।
File sourceFile = new File("source.txt");
File destDir = new File("destinationDir");
FileUtils.copyFileToDirectory(sourceFile, destDir);
Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি কপি করার জন্য সহজ এবং কার্যকরী মেথড সরবরাহ করে। FileUtils.copyFile() এবং FileUtils.copyDirectory() মেথডগুলির মাধ্যমে আপনি সহজে একটি ফাইল বা ডিরেক্টরি কপি করতে পারেন। এগুলির সঙ্গে আরও অনেক শক্তিশালী ফিচার রয়েছে, যেমন ফাইল ফিল্টারিং, ফাইল ওভাররাইটিং এবং ডিরেক্টরি কপি করা, যা আপনার I/O operations কে আরও কার্যকরী এবং সহজ করে তোলে। Apache Commons IO লাইব্রেরি ব্যবহারের মাধ্যমে আপনি File I/O এবং Directory I/O সম্পর্কিত অনেক সাধারণ কাজ খুব সহজে সম্পন্ন করতে পারেন।
common.read_more