নির্দিষ্ট ফাইল বা ডিরেক্টরি মনিটর করা

Java Technologies - অ্যাপাচি কমন্স আইও (Apache Common IO) File Monitoring এবং File Alteration Listener |
178
178

Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি মনিটরিং এর জন্য কিছু কার্যকরী টুলস প্রদান করে। এর মাধ্যমে আপনি একটি নির্দিষ্ট ফাইল বা ডিরেক্টরির পরিবর্তনগুলি মনিটর করতে পারেন, যেমন নতুন ফাইল তৈরি হওয়া, কোনো ফাইল পরিবর্তিত হওয়া বা মুছে ফেলা। এটি বিশেষভাবে ব্যবহৃত হয় যখন আপনি ফাইল সিস্টেমে পরিবর্তনগুলি ট্র্যাক করতে চান, যেমন লগ ফাইল মনিটরিং, ডেটা প্রক্রিয়া বা ফাইল আর্কাইভিংয়ের জন্য।

Apache Commons IO লাইব্রেরির মধ্যে FileAlterationMonitor এবং FileAlterationObserver ক্লাসগুলো ফাইল এবং ডিরেক্টরি পরিবর্তন মনিটর করার জন্য ব্যবহৃত হয়।


FileAlterationObserver: ডিরেক্টরি পর্যবেক্ষণ করা

FileAlterationObserver ক্লাসটি একটি নির্দিষ্ট ডিরেক্টরি পর্যবেক্ষণ করে এবং সেখানে কোনো পরিবর্তন হলে সেগুলি শনাক্ত করতে সাহায্য করে। এটি একটি ডিরেক্টরি বা তার সাবডিরেক্টরিতে ফাইলের তৈরি, পরিবর্তন এবং মুছে ফেলা বিষয়ে অবহিত করতে ব্যবহৃত হয়।

FileAlterationObserver এর ব্যবহার:

  1. ফাইল তৈরি হলে (ফাইল তৈরি হওয়ার খবর জানানো)
  2. ফাইল পরিবর্তন হলে (ফাইল পরিবর্তনের খবর জানানো)
  3. ফাইল মুছে গেলে (ফাইল মুছে ফেলার খবর জানানো)

এটি আপনাকে ডিরেক্টরি পর্যবেক্ষণ করতে এবং নির্দিষ্ট কার্যক্রম সম্পাদন করতে সহায়তা করে।


FileAlterationMonitor: মনিটর শুরু করা

FileAlterationMonitor ক্লাসটি নির্দিষ্ট সময় পর পর 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 ক্লাসটি নির্দিষ্ট সময় পর পর পরিবর্তন ট্র্যাক করতে ব্যবহৃত হয়েছে (এখানে প্রতি ৫ সেকেন্ডে মনিটর হচ্ছে)।
  • মনিটরিং সিস্টেমটি ফাইল তৈরি, পরিবর্তন এবং মুছে ফেলার খবর দেয়।

FileAlterationMonitor এর মাধ্যমে অন্যান্য কার্যক্রম:

  1. Start/Stop Monitoring:
    • monitor.start() দ্বারা মনিটরিং শুরু করা হয় এবং monitor.stop() দ্বারা এটি বন্ধ করা হয়।
  2. Listener Implementation:
    • FileAlterationListener ইন্টারফেসটি ফাইল এবং ডিরেক্টরি তৈরি, পরিবর্তন এবং মুছে ফেলা সম্পর্কে callback মেথড প্রদান করে, যেমন onFileCreate(), onFileChange(), onFileDelete() ইত্যাদি।

IOUtils ক্লাস এবং FileAlterationMonitor এর সম্পর্ক

IOUtils ক্লাসটি স্ট্রিম ও ফাইল সম্পর্কিত আরও কার্যকরী অপারেশন সরবরাহ করে, যখন FileAlterationMonitor এবং FileAlterationObserver ফাইল সিস্টেমের পরিবর্তন মনিটরিংয়ের জন্য ব্যবহৃত হয়। আপনি একটি নির্দিষ্ট ডিরেক্টরি পর্যবেক্ষণ করার সময় স্ট্রিম অপারেশনও করতে পারেন, যেমন IOUtils.copy() এর মাধ্যমে ফাইল কপি করা।


সারাংশ

Apache Commons IO লাইব্রেরির FileAlterationMonitor এবং FileAlterationObserver ক্লাসগুলি ফাইল এবং ডিরেক্টরি পর্যবেক্ষণ করতে সাহায্য করে, যা ডেটা প্রক্রিয়া বা ফাইল সিস্টেম ট্র্যাকিংয়ে অত্যন্ত কার্যকর। এই ক্লাসগুলির মাধ্যমে আপনি কোনো ডিরেক্টরিতে বা ফাইল সিস্টেমে পরিবর্তন সনাক্ত করতে পারেন এবং সেই অনুযায়ী কার্যক্রম চালাতে পারেন। এর মাধ্যমে, আপনি ডিরেক্টরি এবং ফাইল সিস্টেমের পরিবর্তনগুলি কার্যকরভাবে মনিটর করতে সক্ষম হবেন, যা বিভিন্ন ধরণের ফাইল পরিচালনা সিস্টেম, লগ মনিটরিং, এবং ডেটা প্রক্রিয়া ব্যবস্থাপনায় সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion