Archive এবং Extract করা

Java Technologies - অ্যাপাচি কমন্স আইও (Apache Common IO) Apache Commons IO এর মাধ্যমে File Compression |
215
215

অ্যাপাচি কমন্স আইও (Apache Commons IO) লাইব্রেরি Archive এবং Extract সম্পর্কিত কার্যক্রম সম্পাদন করার জন্য সরাসরি সমর্থন প্রদান না করলেও, এটি Apache Commons Compress লাইব্রেরির সাথে একত্রে ব্যবহার করতে সক্ষম, যা ফাইল আর্কাইভ এবং এক্সট্র্যাকশন কাজগুলো সহজ এবং কার্যকরী করে তোলে।

Apache Commons Compress একটি পৃথক লাইব্রেরি হলেও এটি অ্যাপাচি কমন্স আইও এর অংশ এবং আর্কাইভ তৈরি, এক্সট্র্যাকশন (বা আনজিপ) এবং বিভিন্ন ফাইল কমপ্রেশন ফরম্যাট (যেমন ZIP, TAR, GZIP, BZIP2, 7z ইত্যাদি) এর কাজ সহজভাবে করতে সহায়তা করে।

এখানে Apache Commons Compress এর মাধ্যমে Archive (ফাইল আর্কাইভ করা) এবং Extract (ফাইল এক্সট্র্যাক্ট করা) করার প্রক্রিয়া দেখানো হয়েছে।


১. ফাইল আর্কাইভ করা (Archive File Creation)

ফাইল আর্কাইভ করার জন্য আপনি ZIP বা অন্য কোনো ফরম্যাট ব্যবহার করতে পারেন। সাধারণত ZipArchiveOutputStream বা TarArchiveOutputStream ক্লাস ব্যবহার করা হয় আর্কাইভ তৈরি করতে।

উদাহরণ: ZIP আর্কাইভ তৈরি করা

import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ArchiveExample {
    public static void main(String[] args) {
        String zipFilePath = "example.zip";
        String sourceFilePath = "example.txt";  // আপনার যেকোনো ফাইল

        try (ZipArchiveOutputStream zipOut = new ZipArchiveOutputStream(new FileOutputStream(zipFilePath))) {
            File sourceFile = new File(sourceFilePath);
            try (FileInputStream fileIn = new FileInputStream(sourceFile)) {
                // ZIP ফাইলের জন্য এন্ট্রি তৈরি
                ZipArchiveEntry entry = new ZipArchiveEntry(sourceFile, sourceFile.getName());
                zipOut.putArchiveEntry(entry);
                byte[] buffer = new byte[1024];
                int length;
                while ((length = fileIn.read(buffer)) > 0) {
                    zipOut.write(buffer, 0, length);
                }
                zipOut.closeArchiveEntry();
            }
            System.out.println("File has been archived successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • ZipArchiveOutputStream ব্যবহার করে একটি নতুন ZIP আর্কাইভ তৈরি করা হয়েছে।
  • ZipArchiveEntry ক্লাসটি ব্যবহার করে ফাইলের একটি এন্ট্রি তৈরি এবং আর্কাইভে যোগ করা হয়েছে।
  • FileInputStream এর মাধ্যমে ফাইলটি পড়া এবং ZIP আর্কাইভে সংরক্ষণ করা হয়েছে।

২. ফাইল এক্সট্র্যাক্ট করা (Extract File)

আর্কাইভ ফাইল থেকে ডেটা এক্সট্র্যাক্ট করতে ZipArchiveInputStream ব্যবহার করা হয়। এছাড়া, অন্যান্য আর্কাইভ ফরম্যাট যেমন TAR বা GZ এর জন্যও যথাযথ ইনপুট স্ট্রিম ব্যবহার করতে হবে।

উদাহরণ: ZIP আর্কাইভ এক্সট্র্যাক্ট করা

import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExtractExample {
    public static void main(String[] args) {
        String zipFilePath = "example.zip";
        String outputDir = "output/";  // আর্কাইভ এক্সট্র্যাক্ট করার জন্য ডিরেক্টরি

        try (ZipArchiveInputStream zipIn = new ZipArchiveInputStream(new FileInputStream(zipFilePath))) {
            ZipArchiveEntry entry;
            while ((entry = zipIn.getNextZipEntry()) != null) {
                File outputFile = new File(outputDir + entry.getName());
                // আর্কাইভের ফাইলটি এক্সট্র্যাক্ট করা
                try (FileOutputStream fileOut = new FileOutputStream(outputFile)) {
                    byte[] buffer = new byte[1024];
                    int length;
                    while ((length = zipIn.read(buffer)) > 0) {
                        fileOut.write(buffer, 0, length);
                    }
                    System.out.println("Extracted: " + entry.getName());
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • ZipArchiveInputStream ব্যবহার করে ZIP আর্কাইভ থেকে ডেটা এক্সট্র্যাক্ট করা হচ্ছে।
  • ZipArchiveEntry এর মাধ্যমে আর্কাইভের ফাইলগুলো একে একে পড়া হচ্ছে এবং সেগুলিকে নির্দিষ্ট ডিরেক্টরিতে এক্সট্র্যাক্ট করা হচ্ছে।

৩. আরো আর্কাইভ ফরম্যাটের জন্য সমর্থন

Apache Commons Compress আরও অন্যান্য আর্কাইভ ফরম্যাট সমর্থন করে, যেমন TAR, GZIP, BZIP2, 7z, ইত্যাদি। আপনি সহজেই অন্যান্য ফরম্যাটের আর্কাইভ তৈরি এবং এক্সট্র্যাক্ট করতে পারেন, যেমন:

TAR আর্কাইভ তৈরি এবং এক্সট্র্যাক্ট করা:

TAR আর্কাইভ তৈরি করার জন্য TarArchiveOutputStream এবং এক্সট্র্যাক্ট করার জন্য TarArchiveInputStream ব্যবহার করতে হয়।

উদাহরণ: TAR আর্কাইভ তৈরি করা

import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class TarArchiveExample {
    public static void main(String[] args) {
        String tarFilePath = "example.tar";
        String sourceFilePath = "example.txt"; // আপনার ফাইল

        try (TarArchiveOutputStream tarOut = new TarArchiveOutputStream(new FileOutputStream(tarFilePath))) {
            File sourceFile = new File(sourceFilePath);
            try (FileInputStream fileIn = new FileInputStream(sourceFile)) {
                TarArchiveEntry entry = new TarArchiveEntry(sourceFile, sourceFile.getName());
                tarOut.putArchiveEntry(entry);
                byte[] buffer = new byte[1024];
                int length;
                while ((length = fileIn.read(buffer)) > 0) {
                    tarOut.write(buffer, 0, length);
                }
                tarOut.closeArchiveEntry();
            }
            System.out.println("TAR file created successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • TarArchiveOutputStream ব্যবহার করে TAR আর্কাইভ তৈরি করা হচ্ছে।

উদাহরণ: TAR আর্কাইভ এক্সট্র্যাক্ট করা

import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class TarExtractExample {
    public static void main(String[] args) {
        String tarFilePath = "example.tar";
        String outputDir = "output/";

        try (TarArchiveInputStream tarIn = new TarArchiveInputStream(new FileInputStream(tarFilePath))) {
            TarArchiveEntry entry;
            while ((entry = tarIn.getNextTarEntry()) != null) {
                File outputFile = new File(outputDir + entry.getName());
                try (FileOutputStream fileOut = new FileOutputStream(outputFile)) {
                    byte[] buffer = new byte[1024];
                    int length;
                    while ((length = tarIn.read(buffer)) > 0) {
                        fileOut.write(buffer, 0, length);
                    }
                    System.out.println("Extracted: " + entry.getName());
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • TarArchiveInputStream ব্যবহার করে TAR আর্কাইভ থেকে ফাইল এক্সট্র্যাক্ট করা হচ্ছে।

সারাংশ

Apache Commons Compress লাইব্রেরি ফাইল আর্কাইভ এবং এক্সট্র্যাক্ট করার জন্য কার্যকরী সমাধান সরবরাহ করে। আপনি ZIP, TAR, GZIP, BZIP2, এবং অন্যান্য ফরম্যাটের আর্কাইভ তৈরি এবং এক্সট্র্যাক্ট করতে পারেন। এই লাইব্রেরির মাধ্যমে ফাইল আর্কাইভ করতে এবং ডেটা এক্সট্র্যাক্ট করার সময় সহজ এবং কার্যকরী কোড লেখা যায়, যা সাধারণত ফাইল পরিচালনা এবং ব্যাকআপ প্রক্রিয়ায় অত্যন্ত উপকারী।

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

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

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

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