首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 多檔案壓縮:ZipCompress 實作詳解

     編輯:Java 相關知識

Java 1.1 提供完整的 Zip 支援,可壓縮多個檔案並計算校驗和。標準 Zip 格式確保與現有工具相容。

核心類別與流程

// 壓縮
FileOutputStream f = new FileOutputStream("test.zip");
CheckedOutputStream csum = new CheckedOutputStream(f, new Adler32());
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(csum));
out.setComment("註解");

for (String file : args) {
    out.putNextEntry(new ZipEntry(file));
    // 讀取檔案內容寫入 out
    in.close();
}
out.close(); // 必須關閉才能取得正確校驗和

// 解壓縮
ZipInputStream in2 = new ZipInputStream(new BufferedInputStream(
    new CheckedInputStream(new FileInputStream("test.zip"), new Adler32())));
ZipEntry ze;
while ((ze = in2.getNextEntry()) != null) {
    // 讀取 ze 內容
}

// 替代方案:ZipFile 列舉條目
ZipFile zf = new ZipFile("test.zip");
Enumeration e = zf.entries();

關鍵技術點

  • ZipEntry:封裝單一條目中繼資料(名稱、壓縮前後大小、CRC、註解、壓縮方法等)
  • 校驗和:支援 Adler32(較快)與 CRC32(較準確),但 ZipEntry 僅支援 CRC 介面
  • setComment() 限制:可設定整體註解,但 ZipInputStream 無法讀取,僅能透過 ZipEntry 逐條目存取
  • 密碼保護:Java Zip 庫不支援密碼功能

應用範圍

不限於檔案,任何資料流(含網路連線)皆可壓縮傳輸。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved