少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

          import java.io.*;
          import java.util.*;
          import java.util.zip.ZipOutputStream;
          import java.util.zip.ZipEntry;
          import java.util.zip.ZipFile;
          public class FileMgr {
          public FileMgr() {
          }
          /**
             * 壓縮文件
             * @param srcfile File[] 需要壓縮的文件列表
             * @param zipfile File    壓縮后的文件
             */
          public static void ZipFiles(java.io.File[] srcfile, java.io.File zipfile) {
              byte[] buf = new byte[1024];
              try {
                // Create the ZIP file
                ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));
                // Compress the files
                for (int i = 0; i < srcfile.length; i++) {
                  FileInputStream in = new FileInputStream(srcfile[i]);
                  // Add ZIP entry to output stream.
                  out.putNextEntry(new ZipEntry(srcfile[i].getName()));
                  // Transfer bytes from the file to the ZIP file
                  int len;
                  while ( (len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                  }
                  // Complete the entry
                  out.closeEntry();
                  in.close();
                }
                // Complete the ZIP file
                out.close();
                System.out.println("壓縮完成.");
              }
              catch (IOException e) {
                e.printStackTrace();
              }
          }
          /**
             * 解壓縮
             * @param zipfile File 需要解壓縮的文件
             * @param descDir String 解壓后的目標目錄
             */
          public static void UnZipFiles(java.io.File zipfile, String descDir) {
              try {
                // Open the ZIP file
                ZipFile zf = new ZipFile(zipfile);
                for (Enumeration entries = zf.entries(); entries.hasMoreElements(); ) {
                  // Get the entry name
                  ZipEntry entry = ( (ZipEntry) entries.nextElement());
                  String zipEntryName = entry.getName();
                  InputStream in = zf.getInputStream(entry);
                  // System.out.println(zipEntryName);
                  OutputStream out = new FileOutputStream(descDir + zipEntryName);
                  byte[] buf1 = new byte[1024];
                  int len;
                  while ( (len = in.read(buf1)) > 0) {
                    out.write(buf1, 0, len);
                  }
                  // Close the file and stream
                  in.close();
                  out.close();
                  System.out.println("解壓縮完成.");
                }
              }
              catch (IOException e) {
                e.printStackTrace();
              }
          }
          }


          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/Jonthanoscar/archive/2007/08/09/1733812.aspx






          測試方法(junit4測試):

          package lc.abin.lee.basic.zip.test;

          import java.io.File;

          import lc.abin.lee.basic.zip.FileMgr;

          import org.junit.AfterClass;
          import org.junit.BeforeClass;
          import org.junit.Test;

          public class testFileZip {
           @BeforeClass
           public static void init(){
            System.out.println("initialize zip");
           }
           @Test
           public void testCreateZIP(){
            File in=new File("D:\\abin.zip");
            File[] file=new File[]{in};
            File zip=new File("D:\\abin.zip");
            FileMgr mgr=new FileMgr();
            mgr.ZipFiles(file, zip);
           }
           @Test
           public void testParseZIP(){
            File in=new File("D:\\abin.zip");
            String filePath="D:/home/";
            FileMgr mgr=new FileMgr();
            mgr.UnZipFiles(in, filePath);
           }
           
           @AfterClass
           public static void destroy(){
            System.out.println("destroy zip");
           }
          }

          posted on 2012-11-13 23:25 abin 閱讀(1545) 評論(0)  編輯  收藏 所屬分類: Junit

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 宜城市| 陈巴尔虎旗| 定边县| 射阳县| 安陆市| 隆德县| 桐柏县| 新巴尔虎左旗| 清丰县| 彝良县| 兴城市| 祁阳县| 彭州市| 孝义市| 望江县| 綦江县| 滦南县| 满洲里市| 郁南县| 萨嘎县| 轮台县| 财经| 八宿县| 尖扎县| 沅陵县| 进贤县| 辽宁省| 祥云县| 宜章县| 亳州市| 深水埗区| 鹤壁市| 安平县| 石门县| 健康| 武汉市| 伊通| 长兴县| 麻城市| 富民县| 墨江|