网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  技巧:使用java把文件/目录压缩成zip包     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:85次  录入:管理员--2007-11-16  
 

使用java自带的类 java.util.zip进行文件/目录的压缩的话,有一点不足,不支持中文的文件/目录命名,如果有中文名,那么打包就会失败。在ant.jar类库中也有zip类,引入 org.apache.tools.zip.*,能够解决不支持中文文件目录的问题,同时,ant的获得途径也比较多,一般的应用服务器中有这个包,如果没有去下载个tomcat5.x,里面也有ant.jar,可以使用。

例子如下:

import java.io.file;
import org.apache.tools.zip.zipoutputstream;
import java.io.fileinputstream;
import java.io.fileoutputstream;

public class compressbook {    
    public compressbook() {        
    }

public void zip(string inputfilename) throws exception {     
    string zipfilename="c:\\test.zip";//打包后文件名字
    system.out.println(zipfilename);
    zip(zipfilename, new file(inputfilename));  
    
    }

 private 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();
 }

 private void zip(zipoutputstream out, file f, string base)
 throws exception {
   if (f.isdirectory()) {
     file[] fl = f.listfiles();
     out.putnextentry(new org.apache.tools.zip.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 org.apache.tools.zip.zipentry(base));
     fileinputstream in = new fileinputstream(f);
     int b;
     system.out.println(base);
     while ( (b = in.read()) != -1) {
       out.write(b);
     }
     in.close();
   }
 }
}

 
 
上一篇: j2se api读取properties文件的六种方法    下一篇: 技巧:用java语言实现对称加密实例详解
  相关文档
java:filter编码器 11-17
配置tomcat5.0连接池遇到的问题,请高人指点 11-17
java网站大全 11-17
java 理论与实践: 非阻塞算法简介 11-17
java设计模式之修饰模式篇 11-17
java性能优化-之一 11-17
java的秘密:swing的实用工具 11-17
一个最简单的java程序 11-17
struts用户指南 11-16
原来写的一篇老文:实战log4j 11-17
服务器--tomcat的内存和连接数配置详解 11-16
在java中使用反射分析类结构 11-17
ejb 3.0开发指南之依赖注入 11-16
j2ee中使用entitybean和jdo的优缺点 11-17
使用jakarta commons pool处理对象池化 11-17
java technology exam objectives 11-17
试析j2ee与.net时代的商业利润(转) 11-17
在java中处理日志记录 11-16
充分利用链接异常处理 11-17
把java类变成windows nt服务的3中方法 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息