Apache Commons IO লাইব্রেরি ফাইল কপি করার জন্য বেশ কিছু কার্যকরী মেথড সরবরাহ করে। এর মধ্যে simple file copy এবং recursive file copy কৌশল দুটি সবচেয়ে বেশি ব্যবহৃত হয়। এই ফিচারগুলি খুবই কার্যকরী, বিশেষ করে যখন আপনাকে ফাইল এবং ডিরেক্টরি কপি করতে হয়। নিচে, আমরা এই দুটি পদ্ধতি নিয়ে বিস্তারিত আলোচনা করব।
Simple file copy এর মাধ্যমে একটি ফাইলকে এক জায়গা থেকে অন্য জায়গায় কপি করা হয়। FileUtils.copyFile() মেথডটি Apache Commons IO লাইব্রেরির একটি জনপ্রিয় মেথড যা একটি ফাইল কপি করতে ব্যবহৃত হয়।
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class SimpleFileCopyExample {
public static void main(String[] args) {
// Create File objects for the source and destination files
File sourceFile = new File("source.txt");
File destFile = new File("destination.txt");
try {
// Copy the source file to the destination
FileUtils.copyFile(sourceFile, destFile);
System.out.println("File copied successfully.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
FileUtils.copyFile() মেথডের মাধ্যমে আপনি ফাইল কপি করার সাথে সাথে ফাইলের কন্টেন্টও কপি করতে পারেন।
Recursive file copy এর মাধ্যমে একটি ডিরেক্টরির মধ্যে থাকা সকল ফাইল এবং সাবডিরেক্টরি সহ সমস্ত কন্টেন্ট কপি করা হয়। FileUtils.copyDirectory() এবং FileUtils.copyDirectoryToDirectory() মেথডগুলো Apache Commons IO লাইব্রেরিতে ব্যবহৃত হয় রিকার্সিভ ফাইল কপির জন্য। এই মেথডগুলি একটি ডিরেক্টরি এবং এর ভিতরের সমস্ত উপাদানকে কপি করতে সাহায্য করে।
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class RecursiveFileCopyExample {
public static void main(String[] args) {
// Create File objects for the source and destination directories
File sourceDir = new File("sourceDirectory");
File destDir = new File("destinationDirectory");
try {
// Recursively copy the entire directory
FileUtils.copyDirectory(sourceDir, destDir);
System.out.println("Directory and its contents copied successfully.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
এটি রিকার্সিভ ফাইল কপি এবং sub-directories সহ ফাইল কপি করার জন্য উপযুক্ত।
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class CopyDirectoryToDirectoryExample {
public static void main(String[] args) {
// Create File objects for the source directory and target directory
File sourceDir = new File("sourceDirectory");
File targetDir = new File("targetDirectory");
try {
// Copy the directory to another directory
FileUtils.copyDirectoryToDirectory(sourceDir, targetDir);
System.out.println("Directory copied successfully to the target directory.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
FileUtils ক্লাসে কিছু অতিরিক্ত মেথড রয়েছে যেগুলি ফাইল কপি করার কাজে সহায়ক হতে পারে:
copyFileToDirectory(): একটি ফাইলকে একটি ডিরেক্টরিতে কপি করা।
FileUtils.copyFileToDirectory(sourceFile, targetDir);
copyDirectoryToDirectory(): একটি ডিরেক্টরি অন্য একটি ডিরেক্টরিতে কপি করা।
FileUtils.copyDirectoryToDirectory(sourceDir, targetDir);
copyFile(): একটি ফাইলকে সরাসরি কপি করা (যেমন উপরে আলোচনা করা হয়েছে)।
FileUtils.copyFile(sourceFile, destFile);
copyDirectory(): একটি ডিরেক্টরি এবং তার কন্টেন্ট রিকার্সিভলি কপি করা।
FileUtils.copyDirectory(sourceDir, destDir);
ফাইল কপি করার সময় বিভিন্ন ধরনের IOException ঘটতে পারে, যেমন:
এ কারণে try-catch ব্লক ব্যবহার করে IOException বা অন্যান্য সম্ভাব্য I/O exceptions হ্যান্ডলিং করা উচিত।
try {
FileUtils.copyFile(sourceFile, destFile);
} catch (IOException e) {
System.err.println("Error occurred while copying the file: " + e.getMessage());
e.printStackTrace();
}
আপনি copyFile() বা copyDirectory() মেথড ব্যবহার করার সময় overwrite অপশন প্রয়োগ করতে পারেন, যেমন যদি গন্তব্য ফাইলে আগের কপি থাকে তবে তা ওভাররাইট করা:
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class CustomFileCopyExample {
public static void main(String[] args) {
// Create File objects for the source and destination files
File sourceFile = new File("source.txt");
File destFile = new File("destination.txt");
try {
// Copy the file with overwrite option
FileUtils.copyFile(sourceFile, destFile);
System.out.println("File copied successfully with overwrite.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে copyFile() মেথডের মাধ্যমে ফাইল কপি করা হচ্ছে এবং যদি destination.txt ফাইলটি আগে থেকেই থাকে, তবে সেটি ওভাররাইট করা হবে।
Apache Commons IO লাইব্রেরির FileUtils ক্লাসের সাহায্যে simple file copy এবং recursive file copy খুব সহজে করা যায়। simple file copy সাধারণত একটি ফাইলের কপি তৈরি করতে ব্যবহৃত হয়, এবং recursive file copy এক বা একাধিক ডিরেক্টরির ভিতরের সমস্ত ফাইল এবং সাবডিরেক্টরি কপি করতে ব্যবহৃত হয়। copyDirectory(), copyFile(), copyFileToDirectory() ইত্যাদি মেথডগুলি এই কার্যক্রমকে সহজ এবং দ্রুত করে তোলে।
common.read_more