Zip ফাইল থেকে ফাইল Extract করার প্রক্রিয়া

ZipInputStream এর মাধ্যমে Zip ফাইল Uncompress করা - জাভা জিপ (Java Zip) - Java Technologies

349

Java তে Zip ফাইল থেকে ফাইল Extract করার জন্য java.util.zip প্যাকেজের ZipFile এবং ZipEntry ক্লাস ব্যবহার করা হয়। আপনি এই ক্লাসগুলো ব্যবহার করে ZIP ফাইল থেকে এক বা একাধিক ফাইল বের করতে পারেন। এখানে ZipFile ক্লাস দিয়ে ZIP ফাইল খুলে এবং ZipEntry ক্লাসের সাহায্যে ZIP ফাইলের এন্ট্রিগুলি এক্সট্রাক্ট করা হয়।

Zip ফাইল থেকে ফাইল Extract করার প্রক্রিয়া:

ধাপ ১: ZIP ফাইল খুলুন (ZipFile ক্লাস)

প্রথমে, ZipFile ক্লাস ব্যবহার করে ZIP ফাইলটি খুলুন। এটি একটি ZipFile অবজেক্ট তৈরি করবে যার মাধ্যমে আপনি ZIP ফাইলের ভিতরের সমস্ত এন্ট্রি অ্যাক্সেস করতে পারবেন।

ধাপ ২: ZIP ফাইলের এন্ট্রি গুলি পর্যালোচনা করুন (ZipEntry ক্লাস)

এরপর, ZIP ফাইলের প্রতিটি এন্ট্রি বা ফাইল বের করার জন্য ZipEntry ক্লাস ব্যবহার করা হয়। ZipFile থেকে entries() মেথড দিয়ে সমস্ত এন্ট্রি পাওয়া যাবে এবং তার পর প্রতিটি এন্ট্রিকে ইনপুট স্ট্রিমের মাধ্যমে বের করা যাবে।

ধাপ ৩: ফাইল Extract করুন (OutputStream ব্যবহার করে)

ZIP ফাইলের প্রতিটি এন্ট্রি বের করার পর, সেই ফাইলটি একটি লোকাল ফোল্ডারে সেভ করতে FileOutputStream এবং BufferedOutputStream ব্যবহার করা হয়।

Zip ফাইল থেকে ফাইল Extract করার একটি উদাহরণ:

import java.io.*;
import java.util.zip.*;

public class ZipExtractor {
    public static void main(String[] args) {
        String zipFilePath = "example.zip"; // ZIP ফাইলের পাথ
        String outputDirectory = "output/"; // যেখানে ফাইলগুলো এক্সট্রাক্ট হবে
        
        // ZIP ফাইল থেকে ফাইল এক্সট্রাক্ট করার প্রক্রিয়া
        try (ZipFile zipFile = new ZipFile(zipFilePath)) {
            // ZIP ফাইলের সমস্ত এন্ট্রি গুলি লোড করুন
            zipFile.stream().forEach(entry -> {
                // প্রতিটি এন্ট্রি (ফাইল) এক্সট্রাক্ট করুন
                try {
                    extractFile(zipFile, entry, outputDirectory);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            });
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // ZIP ফাইল থেকে নির্দিষ্ট এন্ট্রি এক্সট্রাক্ট করার মেথড
    private static void extractFile(ZipFile zipFile, ZipEntry entry, String outputDirectory) throws IOException {
        // নির্দিষ্ট ফাইলের আউটপুট পাথ
        File outputFile = new File(outputDirectory + entry.getName());

        // ফোল্ডার তৈরি করুন যদি না থাকে
        new File(outputFile.getParent()).mkdirs();

        // ইনপুট স্ট্রিম তৈরি করুন
        try (InputStream inputStream = zipFile.getInputStream(entry);
             OutputStream outputStream = new FileOutputStream(outputFile)) {
            // বাফারড স্ট্রিম ব্যবহার করে ফাইল কপি করুন
            byte[] buffer = new byte[1024];
            int length;
            while ((length = inputStream.read(buffer)) > 0) {
                outputStream.write(buffer, 0, length);
            }
            System.out.println("Extracted: " + entry.getName());
        }
    }
}

কোডের ব্যাখ্যা:

  1. ZipFile ক্লাস ব্যবহার করে ZIP ফাইলটি খুলেছি এবং zipFile.stream() দিয়ে সমস্ত এন্ট্রিগুলি পর্যালোচনা করছি।
  2. ZipEntry ক্লাস ব্যবহার করে প্রতিটি এন্ট্রি (ফাইল) বের করেছি।
  3. extractFile মেথডে ইনপুট স্ট্রিম থেকে ফাইল ডেটা পড়ে এবং আউটপুট স্ট্রিমে (যে ডিরেক্টরিতে ফাইলটি এক্সট্রাক্ট হবে) সেই ডেটা লিখেছি।
  4. ফোল্ডার সৃষ্টির ব্যবস্থা: যদি আউটপুট ডিরেক্টরি না থাকে, তবে ফোল্ডার তৈরি করা হচ্ছে।

প্রধান মেথডগুলো:

  • ZipFile.getInputStream(ZipEntry entry): ZIP ফাইলের একটি নির্দিষ্ট এন্ট্রি থেকে ইনপুট স্ট্রিম ফেরত দেয়, যার মাধ্যমে আপনি সেই এন্ট্রির ডেটা এক্সট্রাক্ট করতে পারবেন।
  • ZipFile.stream(): এটি ZipEntry গুলির স্ট্রিম ফেরত দেয় যা ZIP ফাইলের মধ্যে সব এন্ট্রি প্রসেস করার জন্য ব্যবহার করা হয়।

ফাইল এক্সট্রাকশন সম্পর্কে কিছু গুরুত্বপূর্ণ বিষয়:

  1. ফোল্ডার তৈরি: ফোল্ডার তৈরি করতে mkdirs() মেথড ব্যবহার করা হয়েছে। এটা নিশ্চিত করে যে নির্দিষ্ট ডিরেক্টরি আগেই তৈরি না থাকলে তা তৈরি হবে।
  2. Buffering: BufferedOutputStream এবং BufferedInputStream ব্যবহার করে ডেটা দ্রুত এবং কার্যকরভাবে কপি করা যায়, কারণ এটি ইন্ডিভিজ্যুয়াল বাইট পড়ার পরিবর্তে বাফার করে বড় ব্লক হিসেবে ডেটা হ্যান্ডেল করে।
  3. অ্যাক্সেস প্রমিশন: নিশ্চিত করুন যে আপনার প্রোগ্রামটি যেখানে ফাইল এক্সট্রাক্ট করবে সেই ডিরেক্টরিতে লেখার অনুমতি আছে।

এটি Java তে একটি সাধারণ Zip ফাইল থেকে ফাইল Extract করার প্রক্রিয়া যা ZipFile এবং ZipEntry ক্লাস ব্যবহার করে সম্পন্ন করা হয়েছে। এই প্রক্রিয়াটি আপনাকে ZIP ফাইল থেকে একাধিক ফাইল বা একটি নির্দিষ্ট ফাইল সহজে বের করার সুযোগ দেয়।

Content added By
Promotion

Are you sure to start over?

Loading...