Java में ZIP-आर्काइव के साथ कार्य: java.util.zip पर संपूर्ण मार्गदर्शिका

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Java में ZIP-आर्काइव के साथ कार्य: java.util.zip पर संपूर्ण मार्गदर्शिका



डेटा आर्काइविंग सॉफ़्टवेयर विकास में मूलभूत कार्यों में से एक है। Java "बॉक्स से बाहर" ZIP-आर्काइव के साथ कार्य करने के लिए एक शक्तिशाली और लचीला टूलकिट प्रदान करता है — पैकेज java.util.zip। इस लेख में, हम विस्तार से समझेंगे कि Java के मानक साधनों का उपयोग करके ZIP-आर्काइव कैसे बनाएं, निकालें और संशोधित करें।



java.util.zip पैकेज की मुख्य कक्षाएं

पैकेज java.util.zip में आर्काइव के साथ कार्य करने के लिए मुख्य कक्षाएं शामिल हैं:

  • ZipOutputStream — ZIP-आर्काइव बनाने के लिए (आर्काइव में फ़ाइलें लिखना)
  • ZipInputStream — ZIP-आर्काइव पढ़ने और निकालने के लिए
  • ZipEntry — आर्काइव के अंदर एक अलग प्रविष्टि (फ़ाइल/निर्देशिका) का प्रतिनिधित्व करता है
  • ZipFile — पूर्ण निष्कर्षण के बिना आर्काइव की सामग्री तक सीधी पहुँच के लिए
  • CheckedOutputStream / CheckedInputStream — डेटा अखंडता की जाँच के लिए (CRC32, Adler32)


ZIP-आर्काइव बनाना (ZipOutputStream)

आर्काइव बनाने के लिए ZipOutputStream का उपयोग किया जाता है, जो एक सामान्य FileOutputStream को लपेटता है। जोड़ी जाने वाली प्रत्येक फ़ाइल को ZipEntry ऑब्जेक्ट द्वारा दर्शाया जाता है।



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

public class CreateZip { public static void main(String[] args) throws IOException { String[] sourceFiles = {"file1.txt", "file2.txt", "image.png"}; String zipName = "archive.zip";

try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipName))) { byte[] buffer = new byte[1024];

for (String filePath : sourceFiles) { File file = new File(filePath); FileInputStream fis = new FileInputStream(file);

// आर्काइव में प्रविष्टि बनाएँ ZipEntry zipEntry = new ZipEntry(file.getName()); zos.putNextEntry(zipEntry);

// फ़ाइल की सामग्री लिखें int length; while ((length = fis.read(buffer)) > 0) { zos.write(buffer, 0, length); } zos.closeEntry(); fis.close(); System.out.println("जोड़ा गया: " + file.getName()); } } System.out.println("आर्काइव बनाया गया: " + zipName); }}


आर्काइव बनाते समय महत्वपूर्ण बारीकियाँ:

  • डेटा लिखने से पहले हमेशा putNextEntry() और बाद में closeEntry() को कॉल करें
  • खाली निर्देशिका जोड़ने के लिए ZipEntry(name + "/") का उपयोग करें — नाम "/" पर समाप्त होना चाहिए
  • स्ट्रीम को स्वचालित रूप से बंद करने के लिए try-with-resources का उपयोग करें


ZIP-आर्काइव निकालना (ZipInputStream)

आर्काइव से फ़ाइलें निकालने के लिए ZipInputStream का उपयोग किया जाता है। पढ़ना क्रमिक रूप से होता है — एक प्रविष्टि के बाद दूसरी।



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

public class ExtractZip { public static void main(String[] args) throws IOException { String zipFile = "archive.zip"; String outputDir = "extracted";

File dir = new File(outputDir); if (!dir.exists()) dir.mkdirs();

try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile))) { ZipEntry entry; byte[] buffer = new byte[1024];

while ((entry = zis.getNextEntry()) != null) { String fileName = entry.getName(); File newFile = new File(outputDir + File.separator + fileName);

// मूल निर्देशिकाएँ बनाएँ new File(newFile.getParent()).mkdirs();

// फ़ाइल लिखें FileOutputStream fos = new FileOutputStream(newFile); int length;

अनुशंसाएँ