File Content Comparator দিয়ে ফাইলের ডেটা তুলনা করা

Java Technologies - অ্যাপাচি কমন্স আইও (Apache Common IO) File Comparator এবং FileUtils Content Comparator |
182
182

Apache Commons IO লাইব্রেরি একটি শক্তিশালী টুলসেট সরবরাহ করে, যার মাধ্যমে আপনি সহজে ফাইল এবং স্ট্রিম সম্পর্কিত বিভিন্ন কার্যক্রম পরিচালনা করতে পারেন। এর মধ্যে একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো File Content Comparator (ফাইল কন্টেন্ট কম্প্যারেটর), যা দুটি ফাইলের কন্টেন্ট তুলনা করতে ব্যবহৃত হয়।

ফাইল কন্টেন্ট তুলনা করার জন্য FileUtils.contentEquals() মেথডটি ব্যবহার করা হয়, যা দুটি ফাইলের কন্টেন্ট (বাইটস) সমান কি না তা চেক করে। এটি বিশেষ করে তখন ব্যবহৃত হয় যখন আপনি দুটি ফাইলের মধ্যে কোনো পরিবর্তন বা মিল চিহ্নিত করতে চান।

এখানে আমরা FileUtils.contentEquals() এবং FileContentComparator এর সাহায্যে ফাইলের কন্টেন্ট তুলনা করার পদ্ধতি দেখবো।


FileUtils.contentEquals(): ফাইল কন্টেন্ট তুলনা করা

FileUtils.contentEquals() মেথডটি দুটি ফাইলের কন্টেন্ট তুলনা করতে ব্যবহৃত হয়। এটি দুটি ফাইলের কন্টেন্ট সমান কিনা তা চেক করে এবং ফলস্বরূপ boolean মান প্রদান করে (যদি ফাইলের কন্টেন্ট সমান হয় তবে true এবং না হলে false)।

FileUtils.contentEquals() উদাহরণ:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileContentComparatorExample {
    public static void main(String[] args) {
        try {
            // Create two files to compare
            File file1 = new File("file1.txt");
            File file2 = new File("file2.txt");

            // Compare the content of the two files
            boolean areFilesEqual = FileUtils.contentEquals(file1, file2);

            // Print the result
            if (areFilesEqual) {
                System.out.println("The contents of the files are the same.");
            } else {
                System.out.println("The contents of the files are different.");
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.contentEquals() মেথডটি দুটি ফাইলের কন্টেন্ট তুলনা করতে ব্যবহৃত হয়েছে।
  • যদি দুটি ফাইলের কন্টেন্ট একরকম হয়, তবে এটি true ফেরত দেবে, অন্যথায় false

এটা কিভাবে কাজ করে?

  1. ফাইলের কন্টেন্ট পড়া হয়।
  2. ফাইলের কন্টেন্ট বাইনারি তুলনা করা হয়।
  3. যদি কন্টেন্ট একসাথে মিলে যায়, তবে true রিটার্ন হয়, নাহলে false রিটার্ন হয়।

FileContentComparator: ফাইল কন্টেন্ট তুলনা করা (কাস্টম কম্প্যারেটর)

FileContentComparator ক্লাসটি ফাইল কন্টেন্ট তুলনা করতে ব্যবহৃত একটি কাস্টম ক্লাস হতে পারে, যেখানে আপনি Comparator ইন্টারফেস ইমপ্লিমেন্ট করে আপনার নিজস্ব তুলনা কৌশল নির্ধারণ করতে পারেন। তবে Apache Commons IO লাইব্রেরি সরাসরি FileContentComparator ক্লাস প্রদান না করলেও, আপনি Comparator ইন্টারফেস ব্যবহার করে ফাইলের কন্টেন্ট তুলনা করার জন্য একটি কাস্টম কম্প্যারেটর তৈরি করতে পারেন।

FileContentComparator উদাহরণ:

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Comparator;

public class FileContentComparatorExample {

    public static void main(String[] args) {
        // Create two files to compare
        File file1 = new File("file1.txt");
        File file2 = new File("file2.txt");

        // Create a custom comparator to compare file contents
        Comparator<File> fileContentComparator = new Comparator<File>() {
            @Override
            public int compare(File file1, File file2) {
                try {
                    byte[] content1 = Files.readAllBytes(file1.toPath());
                    byte[] content2 = Files.readAllBytes(file2.toPath());

                    // Compare the content of the two files byte by byte
                    if (content1.length != content2.length) {
                        return Integer.compare(content1.length, content2.length);
                    }
                    for (int i = 0; i < content1.length; i++) {
                        if (content1[i] != content2[i]) {
                            return Integer.compare(content1[i], content2[i]);
                        }
                    }
                    return 0; // Contents are equal
                } catch (IOException e) {
                    e.printStackTrace();
                    return -1;
                }
            }
        };

        // Compare the files
        int result = fileContentComparator.compare(file1, file2);

        if (result == 0) {
            System.out.println("The contents of the files are the same.");
        } else {
            System.out.println("The contents of the files are different.");
        }
    }
}

এখানে:

  • আমরা Comparator ইন্টারফেস ইমপ্লিমেন্ট করে ফাইলের কন্টেন্ট তুলনা করার জন্য একটি কাস্টম কম্প্যারেটর তৈরি করেছি।
  • compare() মেথডটি দুটি ফাইলের কন্টেন্ট তুলনা করে, এবং তাদের কন্টেন্ট সমান হলে 0 ফেরত দেয়, অন্যথায় পার্থক্য অনুযায়ী একটি নেতিবাচক বা ধনাত্মক মান ফেরত দেয়।

FileUtils.contentEquals() এবং FileContentComparator এর পার্থক্য:

ফিচারFileUtils.contentEquals()FileContentComparator
ব্যবহারফাইলের কন্টেন্ট তুলনা করার জন্য সরাসরি ব্যবহারযোগ্য।কাস্টম কম্প্যারেটর তৈরি করে ফাইল কন্টেন্ট তুলনা করতে হয়।
এন্ট্রি পয়েন্টFileUtils.contentEquals(file1, file2)Comparator<File> fileContentComparator = ...
উপকারিতাসহজ এবং সরাসরি, খুব দ্রুত কাজ করে।আরও কাস্টমাইজযোগ্য এবং ব্যবহারকারী নির্ধারিত তুলনা মেথড প্রদান করে।
ডিপেনডেন্সিApache Commons IO লাইব্রেরি ছাড়া অন্য কোনো ডিপেনডেন্সি নেই।Java-এর Comparator ইন্টারফেস এবং ফাইল পরিচালনার জন্য Java NIO ব্যবহার করে।

ফাইল কন্টেন্ট তুলনা করার প্রয়োজনীয়তা

ফাইল কন্টেন্ট তুলনা করার প্রয়োজন হতে পারে বিভিন্ন পরিস্থিতিতে:

  1. ফাইল সিঙ্ক্রোনাইজেশন: দুটি ফাইলের কন্টেন্ট যদি একই না হয়, তবে আপনি সেগুলো সিঙ্ক্রোনাইজ করতে চাইবেন।
  2. ফাইল আপডেট: আপনি যদি একটি ফাইল আপডেট করেন এবং দেখতে চান যে পুরনো এবং নতুন সংস্করণের মধ্যে কন্টেন্টে পরিবর্তন এসেছে কি না, তবে এই তুলনা প্রয়োজনীয়।
  3. ফাইল ট্র্যাকিং: কিছু সফটওয়্যার সিস্টেমে নির্দিষ্ট ফাইলের কন্টেন্টে পরিবর্তন ট্র্যাক করা খুবই গুরুত্বপূর্ণ, যেমন লগ ফাইল বা কনফিগারেশন ফাইল।

সারাংশ

Apache Commons IO লাইব্রেরির FileUtils.contentEquals() মেথডটি দুটি ফাইলের কন্টেন্ট তুলনা করার জন্য একটি সহজ এবং দ্রুত পদ্ধতি সরবরাহ করে। আপনি চাইলে Comparator ইন্টারফেস ব্যবহার করে কাস্টম FileContentComparator তৈরি করে আরও উন্নত এবং কাস্টম তুলনা করতে পারেন। এই দুটি পদ্ধতির মাধ্যমে আপনি ফাইল কন্টেন্টের মধ্যে পার্থক্য বা সমতা সহজেই চিহ্নিত করতে পারবেন, যা সিঙ্ক্রোনাইজেশন, আপডেট এবং ট্র্যাকিংয়ের জন্য অত্যন্ত কার্যকরী।

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

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

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

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