最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java壓縮解壓zip技術(shù)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年05月19日 16:34:49   投稿:mrr  
Java解壓縮zip - 多個(gè)文件(包括文件夾),對(duì)多個(gè)文件和文件夾進(jìn)行壓縮,對(duì)復(fù)雜的文件目錄進(jìn)行解壓。壓縮方法使用的是可變參數(shù),可以壓縮1到多個(gè)文件

Java解壓縮zip - 多個(gè)文件(包括文件夾),對(duì)多個(gè)文件和文件夾進(jìn)行壓縮,對(duì)復(fù)雜的文件目錄進(jìn)行解壓。壓縮方法使用的是可變參數(shù),可以壓縮1到多個(gè)文件..可以寫數(shù)組的方式或者一個(gè)個(gè)寫到參數(shù)列表里面...

 ZipFiles(zip,"abc",new File("d:/English"),new File("d:/發(fā)放數(shù)據(jù).xls")); 

測(cè)試文件目錄結(jié)構(gòu): 

http://img.jbzj.com/file_images/article/201705/2017519163105011.png?2017419163118

測(cè)試的壓縮內(nèi)容:English文件夾和同級(jí)的兩個(gè)excel文件

 File[] files = new File[]{new File("d:/English"),new File("d:/發(fā)放數(shù)據(jù).xls"),new File("d:/中文名稱.xls")}; 

下面是壓縮的代碼:

 /** 
  * 壓縮文件-由于out要在遞歸調(diào)用外,所以封裝一個(gè)方法用來 
  * 調(diào)用ZipFiles(ZipOutputStream out,String path,File... srcFiles) 
  * @param zip 
  * @param path 
  * @param srcFiles 
  * @throws IOException 
  * 
  */ 
  public static void ZipFiles(File zip,String path,File... srcFiles) throws IOException{ 
   ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zip)); 
   ZipTest.ZipFiles(out,path,srcFiles); 
   out.close(); 
   System.out.println("*****************壓縮完畢*******************"); 
  } 
  /** 
  * 壓縮文件-File 
  * @param zipFile zip文件 
  * @param srcFiles 被壓縮源文件 
  * 
  */ 
  public static void ZipFiles(ZipOutputStream out,String path,File... srcFiles){ 
   path = path.replaceAll("\\*", "/"); 
   if(!path.endsWith("/")){ 
    path+="/"; 
   } 
   byte[] buf = new byte[1024]; 
   try { 
    for(int i=0;i<srcFiles.length;i++){ 
     if(srcFiles[i].isDirectory()){ 
      File[] files = srcFiles[i].listFiles(); 
      String srcPath = srcFiles[i].getName(); 
      srcPath = srcPath.replaceAll("\\*", "/"); 
      if(!srcPath.endsWith("/")){ 
       srcPath+="/"; 
      } 
      out.putNextEntry(new ZipEntry(path+srcPath)); 
     ZipFiles(out,path+srcPath,files); 
     } 
     else{ 
      FileInputStream in = new FileInputStream(srcFiles[i]); 
      System.out.println(path + srcFiles[i].getName()); 
      out.putNextEntry(new ZipEntry(path + srcFiles[i].getName())); 
      int len; 
      while((len=in.read(buf))>0){ 
       out.write(buf,0,len); 
      } 
      out.closeEntry(); 
      in.close(); 
     } 
   } 
   } catch (Exception e) { 
    e.printStackTrace(); 
   } 
 } 

在壓縮的時(shí)候,針對(duì)文件夾進(jìn)行判斷,然后遞歸壓縮文件。

然后是解壓:

/** 
  * 解壓到指定目錄 
  * @param zipPath 
  * @param descDir 
  * 
  */ 
  public static void unZipFiles(String zipPath,String descDir)throws IOException{ 
   unZipFiles(new File(zipPath), descDir); 
  } 
  /** 
  * 解壓文件到指定目錄 
  * @param zipFile 
  * @param descDir 
  * 
  */ 
  @SuppressWarnings("rawtypes") 
  public static void unZipFiles(File zipFile,String descDir)throws IOException{ 
   File pathFile = new File(descDir); 
   if(!pathFile.exists()){ 
    pathFile.mkdirs(); 
   } 
  ZipFile zip = new ZipFile(zipFile); 
   for(Enumeration entries = zip.getEntries();entries.hasMoreElements();){ 
    ZipEntry entry = (ZipEntry)entries.nextElement(); 
    String zipEntryName = entry.getName(); 
    InputStream in = zip.getInputStream(entry); 
    String outPath = (descDir+zipEntryName).replaceAll("\\*", "/");; 
    //判斷路徑是否存在,不存在則創(chuàng)建文件路徑 
    File file = new File(outPath.substring(0, outPath.lastIndexOf('/'))); 
    if(!file.exists()){ 
     file.mkdirs(); 
    } 
    //判斷文件全路徑是否為文件夾,如果是上面已經(jīng)上傳,不需要解壓 
    if(new File(outPath).isDirectory()){ 
     continue; 
    } 
    //輸出文件路徑信息 
    System.out.println(outPath); 
    
    OutputStream out = new FileOutputStream(outPath); 
    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("******************解壓完畢********************"); 
  } 

解壓的時(shí)候,針對(duì)文件夾判斷創(chuàng)建不存在的文件夾,對(duì)文件夾只創(chuàng)建,不進(jìn)行解壓..因?yàn)榻鈮菏轻槍?duì)文件的,不是文件夾,文件夾需要自己創(chuàng)建。

測(cè)試方法:

 public static void main(String[] args) throws IOException { 
   /** 
   * 壓縮文件 
   */ 
   File[] files = new File[]{new File("d:/English"),new File("d:/發(fā)放數(shù)據(jù).xls"),new File("d:/中文名稱.xls")}; 
   File zip = new File("d:/壓縮.zip"); 
   ZipFiles(zip,"abc",files); 
   
   /** 
   * 解壓文件 
   */ 
   File zipFile = new File("d:/壓縮.zip"); 
   String path = "d:/zipfile/"; 
   unZipFiles(zipFile, path); 
  } 

測(cè)試方法并沒有對(duì)異常做任何處理,這是不對(duì)的,請(qǐng)不要模仿。

輸出結(jié)果:

 abc/English/templete.xls 
 abc/English/中文/bjpowernode/isea/533/abc/templete.xls 
 abc/English/中文/bjpowernode/isea/533/abc/zipfile2/templete.xls 
 abc/English/中文/bjpowernode/isea/533/abc/zipfile2/zipfile/abc/templete.xls 
 abc/English/中文/bjpowernode/isea/533/abc/zipfile2/zipfile/abc/zipfile2/templete.xls 
 abc/English/中文/bjpowernode/isea/533/abc/zipfile2/zipfile/abc/zipfile2/領(lǐng)卡清單.xls 
 abc/English/中文/bjpowernode/isea/533/abc/zipfile2/領(lǐng)卡清單.xls 
 abc/English/中文/bjpowernode/isea/templete.xls 
 abc/English/中文/bjpowernode/isea/領(lǐng)卡清單.xls 
 abc/English/中文/bjpowernode/templete.xls 
 abc/English/領(lǐng)卡清單.xls 
 abc/發(fā)放數(shù)據(jù).xls 
 abc/中文名稱.xls 
 *****************壓縮完畢******************* 
 d:/zipfile/abc/中文名稱.xls 
 d:/zipfile/abc/發(fā)放數(shù)據(jù).xls 
 d:/zipfile/abc/English/領(lǐng)卡清單.xls 
 d:/zipfile/abc/English/中文/bjpowernode/templete.xls 
 d:/zipfile/abc/English/中文/bjpowernode/isea/領(lǐng)卡清單.xls 
 d:/zipfile/abc/English/中文/bjpowernode/isea/templete.xls 
 d:/zipfile/abc/English/中文/bjpowernode/isea/533/abc/templete.xls 
 d:/zipfile/abc/English/templete.xls 
 d:/zipfile/abc/English/中文/bjpowernode/isea/533/abc/zipfile2/templete.xls 
 d:/zipfile/abc/English/中文/bjpowernode/isea/533/abc/zipfile2/zipfile/abc/templete.xls 
 d:/zipfile/abc/English/中文/bjpowernode/isea/533/abc/zipfile2/zipfile/abc/zipfile2/templete.xls 
 d:/zipfile/abc/English/中文/bjpowernode/isea/533/abc/zipfile2/zipfile/abc/zipfile2/領(lǐng)卡清單.xls 
 d:/zipfile/abc/English/中文/bjpowernode/isea/533/abc/zipfile2/領(lǐng)卡清單.xls 
 ******************解壓完畢******************** 

http://img.jbzj.com/file_images/article/201705/2017519163158410.png?2017419163213

以上所述是小編給大家介紹的Java壓縮解壓zip技術(shù),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 如何解決SpringBoot集成百度UEditor圖片上傳后直接訪問404

    如何解決SpringBoot集成百度UEditor圖片上傳后直接訪問404

    在本篇文章里小編給大家整理的是一篇關(guān)于如何解決SpringBoot集成百度UEditor圖片上傳后直接訪問404相關(guān)文章,需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • Java class文件格式之?dāng)?shù)據(jù)類型(二)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java class文件格式之?dāng)?shù)據(jù)類型(二)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java class文件格式之?dāng)?shù)據(jù)類型(二)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Java NumberFormat 類的詳解及實(shí)例

    Java NumberFormat 類的詳解及實(shí)例

    這篇文章主要介紹了Java NumberFormat 類的詳解及實(shí)例的相關(guān)資料,數(shù)字格式化類按照本地風(fēng)格習(xí)慣進(jìn)行的數(shù)字顯示,需要的朋友可以參考下
    2017-08-08
  • scala 讀取txt文件的方法示例

    scala 讀取txt文件的方法示例

    這篇文章主要介紹了scala 讀取txt文件的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Java中的vector類使用示例小結(jié)

    Java中的vector類使用示例小結(jié)

    Vector與ArrayList的實(shí)現(xiàn)基本相似,同樣是基于動(dòng)態(tài)數(shù)組,同樣是需要擴(kuò)容,下面舉了三個(gè)簡短的例子來幫助大家理解vertor:
    2016-05-05
  • java并發(fā)編程_線程池的使用方法(詳解)

    java并發(fā)編程_線程池的使用方法(詳解)

    下面小編就為大家?guī)硪黄猨ava并發(fā)編程_線程池的使用方法(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • IDEA 中創(chuàng)建SpringBoot 父子模塊的實(shí)現(xiàn)

    IDEA 中創(chuàng)建SpringBoot 父子模塊的實(shí)現(xiàn)

    這篇文章主要介紹了IDEA 中創(chuàng)建SpringBoot 父子模塊的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java實(shí)現(xiàn)特定范圍的完數(shù)輸出算法示例

    Java實(shí)現(xiàn)特定范圍的完數(shù)輸出算法示例

    這篇文章主要介紹了Java實(shí)現(xiàn)特定范圍的完數(shù)輸出算法,簡單說明了完數(shù)的概念、計(jì)算原理并結(jié)合實(shí)例形式分析了java針對(duì)給定范圍內(nèi)的完數(shù)輸出操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-12-12
  • Spring中校驗(yàn)器(Validator)的深入講解

    Spring中校驗(yàn)器(Validator)的深入講解

    Spring校驗(yàn)器,參數(shù)校驗(yàn)從此簡單。下面這篇文章主要給大家介紹了關(guān)于Spring中校驗(yàn)器(Validator)的相關(guān)資料,文中通過示例代碼介紹非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Java實(shí)現(xiàn)簡單的分頁功能

    Java實(shí)現(xiàn)簡單的分頁功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡單的分頁功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評(píng)論

金山区| 高要市| 岳西县| 西和县| 永昌县| 顺昌县| 玛多县| 临沭县| 霍山县| 明水县| 罗平县| 淮滨县| 郸城县| 连云港市| 宝兴县| 获嘉县| 喀什市| 花莲市| 嘉义市| 黎城县| 竹北市| 洛扎县| 巨野县| 夹江县| 海安县| 铁岭县| 邻水| 奉新县| 徐州市| 交城县| 仁化县| 兴国县| 新田县| 呼图壁县| 年辖:市辖区| 杭州市| 新沂市| 洪洞县| 枣阳市| 福安市| 桃源县|