Java實現多文件壓縮和解壓縮代碼

fmp8 10年前發布 | 2K 次閱讀 Java

Java實現多文件壓縮和解壓縮代碼

    import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

public class TestZIP {  

    /** 
     * 功能:壓縮多個文件成一個zip文件 
     * @param srcfile:源文件列表 
     * @param zipfile:壓縮后的文件 
     */  
    public static void zipFiles(File[] srcfile, File zipfile) {  
        byte[] buf = new byte[1024];  
        try {  
            //ZipOutputStream類:完成文件或文件夾的壓縮  
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));  
            for (int i = 0; i < srcfile.length; i++) {  
                FileInputStream in = new FileInputStream(srcfile[i]);  
                out.putNextEntry(new ZipEntry(srcfile[i].getName()));  
                int len;  
                while ((len = in.read(buf)) > 0) {  
                    out.write(buf, 0, len);  
                }  
                out.closeEntry();  
                in.close();  
            }  
            out.close();  
            System.out.println("壓縮完成.");  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  

    /** 
     * 功能:解壓縮 
     * @param zipfile:需要解壓縮的文件 
     * @param descDir:解壓后的目標目錄 
     */  
    public static void unZipFiles(File zipfile, String descDir) {  
        try {  
            ZipFile zf = new ZipFile(zipfile);  
            for (Enumeration entries = zf.entries(); entries.hasMoreElements();) {  
                ZipEntry entry = (ZipEntry) entries.nextElement();  
                String zipEntryName = entry.getName();  
                InputStream in = zf.getInputStream(entry);  
                OutputStream out = new FileOutputStream(descDir + zipEntryName);  
                byte[] buf1 = new byte[1024];  
                int len;  
                while ((len = in.read(buf1)) > 0) {  
                    out.write(buf1, 0, len);  
                }  
                in.close();  
                out.close();  
                System.out.println("解壓縮完成.");  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  

    /**功能: 
     * @param args 
     */  
    public static void main(String[] args) {  
        //2個源文件  
        File f1 = new File("D:\\test\\1.csv");  
        File f2 = new File("D:\\test\\2.xlsx");  
        File[] srcfile = { f1, f2 };  

        //壓縮后的文件  
        File zipfile = new File("D:\\test\\3.zip");  
        TestZIP.zipFiles(srcfile, zipfile);  

        //需要解壓縮的文件  
        File file = new File("D:\\test\\3.zip");  
        //解壓后的目標目錄  
        String dir = "D:\\test\\1\\";  
        TestZIP.unZipFiles(file, dir);  
    }  
}  </pre> 轉自:http://blog.csdn.net/zdp072/article/details/44177925     


 本文由用戶 fmp8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!