GZipOutputStream এর মাধ্যমে ফাইল Compress করা

GZip ফাইল Compress এবং Uncompress করা - জাভা জিপ (Java Zip) - Java Technologies

243

GZipOutputStream হল Java তে gzip কম্প্রেশন ফর্ম্যাটে ডেটা কম্প্রেস করার জন্য ব্যবহৃত একটি ক্লাস। এটি Java API তে java.util.zip প্যাকেজে অন্তর্ভুক্ত এবং এটি GZIP ফাইল তৈরি করতে সহায়ক, যা সাধারণত টেক্সট ফাইল বা অন্যান্য ডেটা কম্প্রেস করতে ব্যবহৃত হয়।

GZipOutputStream ব্যবহার করে ফাইল কম্প্রেস করা খুবই সহজ এবং এটি মূলত FileOutputStream এর সাথে যুক্ত হয়ে কাজ করে। এখানে, আমি একটি উদাহরণ দেখাব যেখানে GZipOutputStream ব্যবহার করে একটি বা একাধিক ফাইলকে gzip ফরম্যাটে কম্প্রেস করা হবে।

GZipOutputStream এর মাধ্যমে ফাইল কম্প্রেস করা:

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

public class GZipExample {

    public static void main(String[] args) {
        String sourceFileName = "example.txt";  // কম্প্রেস করার জন্য ফাইলের নাম
        String gzipFileName = "example.txt.gz";  // আউটপুট GZIP ফাইলের নাম

        try {
            // GZipOutputStream ব্যবহার করে ফাইল কম্প্রেস করা
            FileInputStream fis = new FileInputStream(sourceFileName);  // ইনপুট ফাইল
            FileOutputStream fos = new FileOutputStream(gzipFileName);  // আউটপুট ফাইল
            GZIPOutputStream gzipOS = new GZIPOutputStream(fos);  // GZIPOutputStream তৈরি

            byte[] buffer = new byte[1024];  // বাফার তৈরি
            int length;
            
            // ইনপুট ফাইল থেকে ডেটা পড়ে এবং কম্প্রেস করা
            while ((length = fis.read(buffer)) > 0) {
                gzipOS.write(buffer, 0, length);  // GZIP আউটপুটে লেখে
            }

            // স্ট্রিমগুলো বন্ধ করা
            fis.close();
            gzipOS.finish();
            gzipOS.close();

            System.out.println("File successfully compressed into " + gzipFileName);

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

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

  1. ফাইল স্ট্রিম তৈরি:
    • FileInputStream দিয়ে ইনপুট ফাইলটি খোলা হয় এবং FileOutputStream দিয়ে আউটপুট ফাইল (যেটি GZIP ফাইল হবে) তৈরি করা হয়।
  2. GZIPOutputStream তৈরি:
    • GZIPOutputStream তৈরি করা হয় FileOutputStream এর সাথে যুক্ত হয়ে, যা গেজিপ ফাইলের আউটপুট হিসেবে কাজ করবে।
  3. ডেটা কম্প্রেস করা:
    • FileInputStream থেকে ফাইলের ডেটা পড়ে, এবং সেই ডেটা GZIPOutputStream ব্যবহার করে কম্প্রেস করা হয়। এখানে একটি বাফার ব্যবহার করা হচ্ছে, যা প্রতি বার ১ কিলোবাইট ডেটা পড়বে এবং কম্প্রেস করবে।
  4. finish() এবং close():
    • gzipOS.finish() কল করা হয় GZIP আউটপুট স্ট্রিম সম্পূর্ণ করার জন্য।
    • অবশেষে, স্ট্রিমগুলো বন্ধ করতে fis.close() এবং gzipOS.close() ব্যবহার করা হয়।

ফলাফল:

এই কোডটি একটি example.txt.gz নামক GZIP ফাইল তৈরি করবে, যা example.txt ফাইলটি কম্প্রেস করে।

GZipOutputStream এর বৈশিষ্ট্য:

  1. কম্প্রেশন লেভেল:

    • GZipOutputStream এ একটি নির্দিষ্ট কম্প্রেশন লেভেল নির্বাচন করা যেতে পারে। এটি Deflater ক্লাসের মাধ্যমে করা হয়, যা নিম্নলিখিত লেভেলগুলির মধ্যে নির্বাচন করতে সক্ষম:
      • Deflater.NO_COMPRESSION (কম্প্রেশন না করা)
      • Deflater.BEST_SPEED (সর্বোচ্চ গতি)
      • Deflater.BEST_COMPRESSION (সর্বোচ্চ কম্প্রেশন)
      • Deflater.DEFAULT_COMPRESSION (ডিফল্ট কম্প্রেশন)

    উদাহরণ:

    GZIPOutputStream gzipOS = new GZIPOutputStream(fos, Deflater.BEST_COMPRESSION);
    
  2. GZIP হেডার:
    • GZIPOutputStream স্বয়ংক্রিয়ভাবে GZIP হেডার যোগ করে, যা কম্প্রেসড ফাইলের মধ্যে ফাইল মেটাডেটা (যেমন ফাইল নাম, টাইমস্ট্যাম্প) সংরক্ষণ করে।
  3. ফাইল স্ট্রিম এবং GZIP স্ট্রিম:
    • GZIPOutputStream এর ব্যবহার ফাইল স্ট্রিমের উপর ভিত্তি করে, যা ডেটার ইনপুট এবং আউটপুট পরিচালনা করে।

GZipOutputStream ব্যবহার করে Java তে ফাইল কম্প্রেস করা সহজ এবং কার্যকরী। এটি সাধারণত টেক্সট ফাইল এবং অন্যান্য ডেটার জন্য ব্যবহার হয়। যখন বড় ডেটা বা ফাইলের আকার কমানো প্রয়োজন হয়, তখন gzip খুবই জনপ্রিয় এবং কার্যকরী। Java তে GZipOutputStream ফাইল কম্প্রেস করতে আপনাকে উন্নত কম্প্রেশন সুবিধা প্রদান করে, যা স্টোরেজ খরচ এবং ডেটা ট্রান্সফারের সময় কমাতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...