Apache Commons IO লাইব্রেরি ফাইল কমপ্রেস (Compress) এবং ডিকমপ্রেস (Decompress) করার জন্য শক্তিশালী ফিচার প্রদান করে। আপনি সহজেই ZIP এবং GZIP ফাইল কমপ্রেস এবং ডিকমপ্রেস করতে পারেন Commons Compress লাইব্রেরির মাধ্যমে, যা Apache Commons IO এর একটি অংশ। এতে ফাইলের সাইজ ছোট করার জন্য কমপ্রেস করা এবং প্রয়োজনের সময় ফাইলের কনটেন্ট বের করার জন্য ডিকমপ্রেস করা সহজ হয়ে যায়।
এখানে আমরা দেখব ZIP এবং GZIP ফাইল কমপ্রেস এবং ডিকমপ্রেস করার উদাহরণ।
ZIP ফাইল কমপ্রেস এবং ডিকমপ্রেস করার জন্য আমরা Apache Commons Compress লাইব্রেরি ব্যবহার করতে পারি। এটি ZipFile, ZipOutputStream, এবং অন্যান্য ক্লাস সরবরাহ করে যা আপনাকে ZIP ফাইল তৈরি এবং খুলতে সাহায্য করে।
একটি ফাইল বা ডিরেক্টরিকে ZIP ফাইল আকারে কমপ্রেস করতে ZipOutputStream ব্যবহার করা হয়।
উদাহরণ: ZIP ফাইল কমপ্রেস করা
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipFileCompressExample {
public static void main(String[] args) {
File sourceFile = new File("example.txt");
File zipFile = new File("example.zip");
try (FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zipOut = new ZipOutputStream(fos);
FileInputStream fis = new FileInputStream(sourceFile)) {
// ZIP ফাইল তৈরি করা এবং ফাইল যোগ করা
ZipEntry zipEntry = new ZipEntry(sourceFile.getName());
zipOut.putNextEntry(zipEntry);
// ফাইল কনটেন্ট যোগ করা
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
zipOut.write(buffer, 0, length);
}
System.out.println("File compressed successfully into ZIP!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
আউটপুট:
File compressed successfully into ZIP!
এখানে:
একটি ZIP ফাইলের কনটেন্ট পড়তে ZipFile ক্লাস ব্যবহার করা হয়। এটি ZIP ফাইল থেকে নির্দিষ্ট ফাইল বের করতে সাহায্য করে।
উদাহরণ: ZIP ফাইল ডিকমপ্রেস করা
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.io.FileInputStream;
public class ZipFileDecompressExample {
public static void main(String[] args) {
File zipFile = new File("example.zip");
File outputDir = new File("outputDir");
try (ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFile))) {
ZipEntry entry;
while ((entry = zipIn.getNextEntry()) != null) {
File outputFile = new File(outputDir, entry.getName());
try (FileOutputStream fos = new FileOutputStream(outputFile)) {
byte[] buffer = new byte[1024];
int length;
while ((length = zipIn.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
}
zipIn.closeEntry();
}
System.out.println("ZIP file extracted successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
আউটপুট:
ZIP file extracted successfully!
এখানে:
GZIP ফাইল কমপ্রেস এবং ডিকমপ্রেস করার জন্য আমরা GZIPOutputStream এবং GZIPInputStream ব্যবহার করি।
GZIP ফাইল কমপ্রেস করতে GZIPOutputStream ক্লাস ব্যবহার করা হয়।
উদাহরণ: GZIP ফাইল কমপ্রেস করা
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;
public class GzipCompressExample {
public static void main(String[] args) {
File sourceFile = new File("example.txt");
File gzippedFile = new File("example.txt.gz");
try (FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(gzippedFile);
GZIPOutputStream gzipOut = new GZIPOutputStream(fos)) {
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
gzipOut.write(buffer, 0, length);
}
System.out.println("File compressed successfully into GZIP!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
আউটপুট:
File compressed successfully into GZIP!
এখানে:
GZIP ফাইল থেকে ডেটা পড়তে GZIPInputStream ব্যবহার করা হয়।
উদাহরণ: GZIP ফাইল ডিকমপ্রেস করা
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.FileInputStream;
import java.io.BufferedReader;
import java.util.zip.GZIPInputStream;
public class GzipDecompressExample {
public static void main(String[] args) {
File gzippedFile = new File("example.txt.gz");
File outputFile = new File("output_example.txt");
try (GZIPInputStream gzipIn = new GZIPInputStream(new FileInputStream(gzippedFile));
FileOutputStream fos = new FileOutputStream(outputFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(gzipIn))) {
String line;
while ((line = reader.readLine()) != null) {
fos.write(line.getBytes());
fos.write("\n".getBytes());
}
System.out.println("GZIP file decompressed successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
আউটপুট:
GZIP file decompressed successfully!
এখানে:
এই উপায়গুলির মাধ্যমে আপনি Apache Commons IO লাইব্রেরি ব্যবহার করে ফাইল কমপ্রেস এবং ডিকমপ্রেস করার কাজ দ্রুত এবং সহজে করতে পারবেন।
common.read_more