Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি মনিটরিং এর জন্য কিছু কার্যকরী টুলস প্রদান করে। এর মাধ্যমে আপনি একটি নির্দিষ্ট ফাইল বা ডিরেক্টরির পরিবর্তনগুলি মনিটর করতে পারেন, যেমন নতুন ফাইল তৈরি হওয়া, কোনো ফাইল পরিবর্তিত হওয়া বা মুছে ফেলা। এটি বিশেষভাবে ব্যবহৃত হয় যখন আপনি ফাইল সিস্টেমে পরিবর্তনগুলি ট্র্যাক করতে চান, যেমন লগ ফাইল মনিটরিং, ডেটা প্রক্রিয়া বা ফাইল আর্কাইভিংয়ের জন্য।
Apache Commons IO লাইব্রেরির মধ্যে FileAlterationMonitor
এবং FileAlterationObserver
ক্লাসগুলো ফাইল এবং ডিরেক্টরি পরিবর্তন মনিটর করার জন্য ব্যবহৃত হয়।
FileAlterationObserver
ক্লাসটি একটি নির্দিষ্ট ডিরেক্টরি পর্যবেক্ষণ করে এবং সেখানে কোনো পরিবর্তন হলে সেগুলি শনাক্ত করতে সাহায্য করে। এটি একটি ডিরেক্টরি বা তার সাবডিরেক্টরিতে ফাইলের তৈরি, পরিবর্তন এবং মুছে ফেলা বিষয়ে অবহিত করতে ব্যবহৃত হয়।
এটি আপনাকে ডিরেক্টরি পর্যবেক্ষণ করতে এবং নির্দিষ্ট কার্যক্রম সম্পাদন করতে সহায়তা করে।
FileAlterationMonitor
ক্লাসটি নির্দিষ্ট সময় পর পর FileAlterationObserver এর মাধ্যমে নির্দিষ্ট ডিরেক্টরি পর্যবেক্ষণ করে। এটি আপনার কোডের মধ্যে সময়সীমার ভিত্তিতে ডিরেক্টরি এবং ফাইলের পরিবর্তন পর্যবেক্ষণ করতে সক্ষম করে।
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.apache.commons.io.monitor.FileAlterationListener;
import java.io.File;
import java.io.IOException;
public class DirectoryMonitorExample {
public static void main(String[] args) {
// Directory to monitor
File directoryToMonitor = new File("/path/to/monitor");
// Create a FileAlterationObserver for the specified directory
FileAlterationObserver observer = new FileAlterationObserver(directoryToMonitor);
// Create a FileAlterationListener to listen for file changes
observer.addListener(new FileAlterationListener() {
@Override
public void onDirectoryCreate(File directory) {
System.out.println("Directory created: " + directory.getAbsolutePath());
}
@Override
public void onDirectoryChange(File directory) {
System.out.println("Directory modified: " + directory.getAbsolutePath());
}
@Override
public void onDirectoryDelete(File directory) {
System.out.println("Directory deleted: " + directory.getAbsolutePath());
}
@Override
public void onFileCreate(File file) {
System.out.println("File created: " + file.getAbsolutePath());
}
@Override
public void onFileChange(File file) {
System.out.println("File modified: " + file.getAbsolutePath());
}
@Override
public void onFileDelete(File file) {
System.out.println("File deleted: " + file.getAbsolutePath());
}
@Override
public void onStart() {
System.out.println("Monitor started.");
}
@Override
public void onStop() {
System.out.println("Monitor stopped.");
}
});
// Create a FileAlterationMonitor to monitor the directory every 5000 milliseconds (5 seconds)
FileAlterationMonitor monitor = new FileAlterationMonitor(5000, observer);
try {
// Start the monitor
monitor.start();
} catch (Exception e) {
e.printStackTrace();
}
// To simulate, we'll run the monitor for a while, then stop it
try {
Thread.sleep(20000); // Monitor for 20 seconds
monitor.stop();
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
}
}
এখানে:
FileAlterationObserver
ক্লাসটি ডিরেক্টরি পর্যবেক্ষণ করতে ব্যবহৃত হয়েছে এবং FileAlterationListener
এর মাধ্যমে ফাইল ও ডিরেক্টরি সম্পর্কিত পরিবর্তন শনাক্ত করা হচ্ছে।FileAlterationMonitor
ক্লাসটি নির্দিষ্ট সময় পর পর পরিবর্তন ট্র্যাক করতে ব্যবহৃত হয়েছে (এখানে প্রতি ৫ সেকেন্ডে মনিটর হচ্ছে)।monitor.start()
দ্বারা মনিটরিং শুরু করা হয় এবং monitor.stop()
দ্বারা এটি বন্ধ করা হয়।FileAlterationListener
ইন্টারফেসটি ফাইল এবং ডিরেক্টরি তৈরি, পরিবর্তন এবং মুছে ফেলা সম্পর্কে callback মেথড প্রদান করে, যেমন onFileCreate()
, onFileChange()
, onFileDelete()
ইত্যাদি।IOUtils ক্লাসটি স্ট্রিম ও ফাইল সম্পর্কিত আরও কার্যকরী অপারেশন সরবরাহ করে, যখন FileAlterationMonitor এবং FileAlterationObserver ফাইল সিস্টেমের পরিবর্তন মনিটরিংয়ের জন্য ব্যবহৃত হয়। আপনি একটি নির্দিষ্ট ডিরেক্টরি পর্যবেক্ষণ করার সময় স্ট্রিম অপারেশনও করতে পারেন, যেমন IOUtils.copy() এর মাধ্যমে ফাইল কপি করা।
Apache Commons IO লাইব্রেরির FileAlterationMonitor এবং FileAlterationObserver ক্লাসগুলি ফাইল এবং ডিরেক্টরি পর্যবেক্ষণ করতে সাহায্য করে, যা ডেটা প্রক্রিয়া বা ফাইল সিস্টেম ট্র্যাকিংয়ে অত্যন্ত কার্যকর। এই ক্লাসগুলির মাধ্যমে আপনি কোনো ডিরেক্টরিতে বা ফাইল সিস্টেমে পরিবর্তন সনাক্ত করতে পারেন এবং সেই অনুযায়ী কার্যক্রম চালাতে পারেন। এর মাধ্যমে, আপনি ডিরেক্টরি এবং ফাইল সিস্টেমের পরিবর্তনগুলি কার্যকরভাবে মনিটর করতে সক্ষম হবেন, যা বিভিন্ন ধরণের ফাইল পরিচালনা সিস্টেম, লগ মনিটরিং, এবং ডেটা প্রক্রিয়া ব্যবস্থাপনায় সহায়ক।
common.read_more