隨筆-25  評(píng)論-6  文章-0  trackbacks-0
          import?java.util.*;

          import?java.util.zip.*;

          import?java.io.*;

          class?TestZip?

          {

          public?void?zip(String?zipFileName,String?inputFile)throws?Exception{

          zip(zipFileName,new?File(inputFile));

          }

          public?void?zip(String?zipFileName,File?inputFile)throws?Exception{

          ZipOutputStream?out=new?ZipOutputStream(new?FileOutputStream(zipFileName));

          zip(out,inputFile,"");

          System.out.println("zip?done");

          out.close();

          }



          public?void?unzip(String?zipFileName,String?outputDirectory)throws?Exception{
          ZipInputStream?in=new?ZipInputStream(new?FileInputStream(zipFileName));

          ZipEntry?z;

          while?((z=in.getNextEntry()?)!=?null)

          {

          System.out.println("unziping?"+z.getName());

          if?(z.isDirectory())

          {

          String?name=z.getName();

          name=name.substring(0,name.length()-1);

          File?f=new?File(outputDirectory+File.separator+name);

          f.mkdir();

          System.out.println("mkdir?"+outputDirectory+File.separator+name);

          }

          else{

          File?f=new?File(outputDirectory+File.separator+z.getName());

          f.createNewFile();

          FileOutputStream?out=new?FileOutputStream(f);

          int?b;

          while?((b=in.read())?!=?-1)

          out.write(b);

          out.close();

          }

          }



          in.close();

          }



          public?void?zip(ZipOutputStream?out,File?f,String?base)throws?Exception{

          System.out.println("Zipping??"+f.getName());

          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,base+fl.getName());

          }

          }

          else

          {

          out.putNextEntry(new?ZipEntry(base));

          FileInputStream?in=new?FileInputStream(f);

          int?b;

          while?((b=in.read())?!=?-1)

          out.write(b);

          in.close();

          }



          }

          public?static?void?main(String[]?args)?

          {

          try{

          TestZip?t=new?TestZip();

          t.zip("c:\\test.zip","c:\\test");

          t.unzip("c:\\test.zip","c:\\test2");

          }

          catch(Exception?e){e.printStackTrace(System.out);}

          }

          }
          posted on 2006-05-29 17:47 MyJavaWorld 閱讀(490) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 深水埗区| 阿鲁科尔沁旗| 农安县| 揭东县| 威海市| 昌都县| 韶山市| 酉阳| 运城市| 额济纳旗| 府谷县| 固原市| 岐山县| 五寨县| 桃园县| 南溪县| 宿松县| 陵川县| 定结县| 新干县| 基隆市| 微山县| 镇巴县| 沂水县| 永胜县| 淮北市| 安宁市| 宁晋县| 嘉祥县| 隆德县| 长治县| 定陶县| 双峰县| 瓮安县| 临潭县| 合作市| 久治县| 达日县| 合阳县| 聂荣县| 盐源县|