网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  java.util.zip创建和读取zip文件的类     
  文章作者:未知  文章来源:水木森林  
  查看:101次  录入:管理员--2007-11-17  
 

  写了一个用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);}
}
}

 
 
上一篇: java入门视频教程-第48讲    下一篇: 企业级应用开发中的java开源项目
  相关文档
solaris上开发j2ee应用中文问题的解决 11-16
定义lucene 1.3 用到的索引文件格式 11-17
osworkflow源码分析(一) 11-17
java的秘密:使用全屏幕模式 11-16
用java语言编写通过代理访问的应用程序 06-17
java开发技巧:对jar包进行再次修改 11-16
在hibernate中配置proxool连接池 11-17
scjp考试过后说大纲 11-17
struts的文件上传 11-17
精通ejb(8) 11-17
java数据库程序中的存储过程设计 11-16
开源技术:将系统移植到spring 11-17
lesson1.04配j2ee环境及cloudscape数据库 11-17
java理论与实践:您的小数点在哪? 11-17
java高级--java中异常机制的深入研究 11-16
java web 框架的"甜点" 11-17
jbuilder 使用中的常见问题归纳整理 11-17
sybase企业级数据库系统——ase12 11-16
javamail的几个实用知识点 11-17
java入门教程:数据类型 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息