快速业务通道

java.util.zip创建和读取zip文件的类 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

java.util.zip创建和读取zip文件的类

时间:2011-01-21

写了一个用java.util.zip创建和读取zip文件的类

跟大家分享一下

里面用了递归调用

呵呵

近期用了不少递归调用!有空总结一下!

/** TestZip.java coding by Serol Luo. rollingpig@163.com 2003/07/03 http://www.chinaunix.net/forum/viewforum.php?f=26 转载请保留此信息 */ 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[i],base+fl[i].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);} } }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号