隨筆-25  評論-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) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 凌海市| 怀集县| 霍州市| 屯门区| 裕民县| 永年县| 武安市| 万全县| 屏边| 县级市| 梨树县| 全南县| 西藏| 枣庄市| 绥芬河市| 榕江县| 桦川县| 连江县| 宁南县| 清徐县| 桃园市| 怀安县| 云龙县| 揭阳市| 洛南县| 栖霞市| 台中市| 聂拉木县| 新闻| 吐鲁番市| 阳春市| 东源县| 大方县| 象山县| 靖宇县| 日喀则市| 宁阳县| 同心县| 克山县| 长阳| 文登市|