圖解 Java Zip 包裹檔案
Java ZipOutputStream 使用教學
Java API 中提供了 java.util.zip 這個套件來處理檔案的壓縮與解壓縮, 在壓縮的時候我們主要使用的是 ZipOutputStream
壓縮
1. 建立單個壓縮檔
先展示如何建立一個文字檔,然後壓縮起來
// 建立檔案輸出流
FileOutputStream fos = new FileOutputStream("/your/path/output.zip"); // 輸出檔名
ZipOutputStream zipOut = new ZipOutputStream(fos); // 用檔案輸出流建立出 Zip 輸出流
byte[] str2Bytes = "Hello Zip.".getBytes(); // 文字內容轉為 Bytes
// 在 zip 內加入一個項目
// (可以是一個檔名,或用目錄來表示)
zipOut.putNextEntry(new ZipEntry("file001.txt"));
// zipOut.putNextEntry(new ZipEntry("dir/file001.txt"));
zipOut.write(str2Bytes);
zipOut.close();
fos.close();
看不懂,一臉懵?! 沒關係~ 我第一次看到也是這感覺哈! 我試著把自己的理解畫出來給大家看看
FileOutputStream fos = new FileOutputStream("/your/path/output.zip");
我們先建立一個 FileOutputStream 並且告訴他我們的目標輸出的位置
ZipOutputStream zipOut = new ZipOutputStream(fos);
用檔案輸出流 fos 建立出 Zip 輸出流
byte[] str2Bytes = "Hello Zip.".getBytes(); // 文字內容轉為 Bytes
// 在 zip 內加入一個項目
// (可以是一個檔名,或用目錄來表示)
zipOut.putNextEntry(new ZipEntry("file001.txt"));
zipOut.write(str2Bytes); // 放入 bytes 內容
// 關閉輸出流
zipOut.close();
fos.close();
透過 putNextEntry() 方法把 ZipEntry 放進去之後, 再用 write() 方法把放入 bytes 內容 最後再關閉輸出流,我們的 Zip 檔案就成功建立了!!