ZipFile ক্লাস Java এর java.util.zip প্যাকেজের একটি অংশ, যা ZIP ফাইলের মধ্যে থাকা এন্ট্রিগুলির (ফাইল বা ডিরেক্টরি) তথ্য এক্সেস এবং প্রসেস করার জন্য ব্যবহৃত হয়। ZipFile ব্যবহার করে একটি ZIP ফাইলের মধ্যে থাকা entries (ফাইল এবং ডিরেক্টরি) এর উপর অপারেশন করা যায়, যেমন এক্সেস করা, ফাইলের ভিতরের ডেটা রিড করা ইত্যাদি।
ZipFile ক্লাসের মেথডসমূহ:
entries()getEntry(String name)getInputStream(ZipEntry entry)
1. entries() মেথড:
entries() মেথডটি ZipFile এর মধ্যে সমস্ত ZipEntry (যা ফাইল বা ডিরেক্টরি হতে পারে) ফিরিয়ে দেয়। এটি একটি Enumeration<ZipEntry> প্রদান করে, যার মাধ্যমে আপনি ZIP ফাইলের সব এন্ট্রি অ্যাক্সেস করতে পারেন।
Syntax:
public Enumeration<? extends ZipEntry> entries()
ব্যবহার:
entries()মেথডটি ZIP ফাইলের সকল এন্ট্রি ফেরত দেয় এবং আপনি সেগুলি লুপের মাধ্যমে অ্যাক্সেস করতে পারেন।
উদাহরণ:
import java.io.*;
import java.util.zip.*;
public class ZipFileExample {
public static void main(String[] args) {
try {
// ZIP ফাইল ওপেন করা
ZipFile zipFile = new ZipFile("example.zip");
// ZIP ফাইলের সমস্ত এন্ট্রি রিড করা
Enumeration<? extends ZipEntry> entries = zipFile.entries();
// প্রতিটি এন্ট্রি লুপের মাধ্যমে অ্যাক্সেস করা
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
System.out.println("Entry Name: " + entry.getName());
}
// ZIP ফাইল বন্ধ করা
zipFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. getEntry(String name) মেথড:
getEntry(String name) মেথডটি নির্দিষ্ট নামের একটি ZipEntry (ফাইল বা ডিরেক্টরি) ফিরে আসে। এটি ব্যবহার করে আপনি ZIP ফাইলের ভিতরের নির্দিষ্ট এন্ট্রির তথ্য অ্যাক্সেস করতে পারেন।
Syntax:
public ZipEntry getEntry(String name)
ব্যবহার:
- আপনি যদি একটি নির্দিষ্ট ফাইল বা ডিরেক্টরি খুঁজতে চান, তাহলে
getEntry(String name)মেথড ব্যবহার করতে পারেন।
উদাহরণ:
import java.io.*;
import java.util.zip.*;
public class GetEntryExample {
public static void main(String[] args) {
try {
// ZIP ফাইল ওপেন করা
ZipFile zipFile = new ZipFile("example.zip");
// একটি নির্দিষ্ট এন্ট্রি খোঁজা
ZipEntry entry = zipFile.getEntry("file1.txt");
if (entry != null) {
System.out.println("Found entry: " + entry.getName());
} else {
System.out.println("Entry not found.");
}
// ZIP ফাইল বন্ধ করা
zipFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. getInputStream(ZipEntry entry) মেথড:
getInputStream(ZipEntry entry) মেথডটি একটি ZipEntry (যে ফাইল বা ডিরেক্টরি আপনি পছন্দ করেছেন) থেকে ইনপুট স্ট্রীম প্রদান করে, যার মাধ্যমে আপনি সেই ফাইলের কনটেন্ট রিড করতে পারবেন। এই মেথডটি ZipInputStream এর মত কাজ করে, তবে এটি শুধুমাত্র একটি নির্দিষ্ট ZipEntry এর জন্য ইনপুট স্ট্রীম রিটার্ন করে।
Syntax:
public InputStream getInputStream(ZipEntry entry)
ব্যবহার:
- এই মেথডটি ব্যবহার করে আপনি নির্দিষ্ট ZIP এন্ট্রির ভিতরের ডেটা রিড করতে পারেন। এটি খুবই কার্যকরী যখন আপনি ZIP ফাইল থেকে নির্দিষ্ট ফাইলের কনটেন্ট পড়তে চান।
উদাহরণ:
import java.io.*;
import java.util.zip.*;
public class GetInputStreamExample {
public static void main(String[] args) {
try {
// ZIP ফাইল ওপেন করা
ZipFile zipFile = new ZipFile("example.zip");
// একটি নির্দিষ্ট এন্ট্রি খোঁজা
ZipEntry entry = zipFile.getEntry("file1.txt");
if (entry != null) {
// সেই এন্ট্রি থেকে ইনপুট স্ট্রীম পাওয়া
InputStream inputStream = zipFile.getInputStream(entry);
// ফাইলের কনটেন্ট রিড করা
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// স্ট্রীম এবং ফাইল বন্ধ করা
reader.close();
} else {
System.out.println("Entry not found.");
}
// ZIP ফাইল বন্ধ করা
zipFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ZipFile এর মেথডসমূহের ব্যবহার সারাংশ:
entries(): ZIP ফাইলের সমস্ত এন্ট্রি ফিরিয়ে দেয় এবং আপনি প্রতিটি এন্ট্রিEnumerationবাIteratorএর মাধ্যমে এক্সেস করতে পারেন।getEntry(String name): নির্দিষ্ট একটি ZipEntry (ফাইল বা ডিরেক্টরি) খুঁজে বের করতে ব্যবহৃত হয়, যার মাধ্যমে নির্দিষ্ট ফাইল বা ডিরেক্টরি তথ্য পাওয়া যায়।getInputStream(ZipEntry entry): একটি নির্দিষ্ট ZipEntry থেকে ইনপুট স্ট্রীম প্রদান করে, যার মাধ্যমে সেই ফাইলের কনটেন্ট রিড করা যায়।
ZipFile ক্লাসের entries(), getEntry(String name), এবং getInputStream(ZipEntry entry) মেথডসমূহ খুবই গুরুত্বপূর্ণ Java Zip ফাইল ম্যানিপুলেশনে, বিশেষ করে যখন আপনি ZIP ফাইলের ভিতরের বিভিন্ন ফাইল বা ডিরেক্টরি অ্যাক্সেস করতে চান। এই মেথডগুলো আপনাকে ZIP ফাইল থেকে নির্দিষ্ট ফাইল পড়তে, সমস্ত এন্ট্রি তালিকা করতে এবং ইনপুট স্ট্রীম দিয়ে ডেটা এক্সেস করতে সাহায্য করে।
Read more