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

Java 壓縮檔案/目錄為 ZIP 實戰技巧:支援中文檔名

     編輯:Java 相關知識

標準 java.util.zip 不支援中文檔名/目錄名,打包會失敗。經實測,Apache Ant 的 org.apache.tools.zip 套件完美解決中文編碼問題。Ant.jar 取得容易:應用伺服器常內建,或下載 Tomcat 5.x 取得。實測可用。

完整程式碼範例

import java.io.*;
import org.apache.tools.zip.ZipOutputStream;
import org.apache.tools.zip.ZipEntry;

public class CompressBook {
    public void zip(String inputFileName) throws Exception {
        String zipFileName = "c:\\test.zip";
        zip(zipFileName, new File(inputFileName));
    }
    private void zip(String zipFileName, File inputFile) throws Exception {
        ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
        zip(out, inputFile, "");
        out.close();
    }
    private void zip(ZipOutputStream out, File f, String base) throws Exception {
        if (f.isDirectory()) {
            File[] fl = f.listFiles();
            out.putNextEntry(new ZipEntry(base + "/"));
            base = base.length() == 0 ? "" : base + "/";
            for (int i = 0; i < fl.length; i++) {
                zip(out, fl[i], base + fl[i].getName());
            }
        } else {
            out.putNextEntry(new ZipEntry(base));
            FileInputStream in = new FileInputStream(f);
            int b;
            while ((b = in.read()) != -1) out.write(b);
            in.close();
        }
    }
}

遺憾

java.util.zip 與 org.apache.tools.zip 均無法解壓 RAR 格式。尋找 Java 解壓 RAR 方案未果,盼高人分享。

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