1. 程式人生 > >Java壓縮解壓縮檔案的幾種方法

Java壓縮解壓縮檔案的幾種方法

Java壓縮解壓縮檔案的方法有,第一中藉助java jdk自帶的ZipOutputStream和ZipInputStream。 第二種,藉助第三方jar, 例如Apache Commons Compress和Ant。

下面以Ant為例詳細介紹。
前提,需要將Ant的ant.jar和ant-launcher.jar新增到classpath中。先建立一個Expander類,該類繼承了Ant的org.apache.tools.ant.taskdefs.Expand類。

package com.yq.main;

import org.apache.tools.ant.Project;
import
org.apache.tools.ant.Target; import org.apache.tools.ant.taskdefs.Expand; class Expander extends Expand{ public Expander(String taskType, String taskName){ this.setProject(new Project()); this.getProject().init(); this.setOwningTarget(new Target()); this.setTaskType(taskType); this
.setTaskName(taskName); } }

然後,使用Expander類

package com.yq.main;

import java.io.File;

public class ZipUnZip {

    /**
     * @param args
     */
    public static void main(String[] args) {
        File zipFile = new File("a.zip");
        File unzipFile = new File("unzip");
        extract(zipFile, unzipFile);
    }

    public
static void extract(File src, File dest){ String path = src.getPath(); String ext = path.substring(path.lastIndexOf('.') + 1).toLowerCase(); Expander expander = null; if(ext.equals("tar")) { expander = new Expander("untar","untar"); } else if(ext.equals("jar")) { expander = new Expander("unzip","unzip"); } else if(ext.equals("zip")) { expander = new Expander("unzip","unzip"); } else { // ... } expander.setSrc(src); expander.setDest(dest); expander.execute(); } }