首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 网络编程 → 其他相关 → 文章内容

非java.util.zip,使用ant.jar制作zip压缩文件,以及相关中文解决方法

作者:未知  来源:CSDN  发布时间:2007-2-6 18:16:31
 

用java.util.zip制作zip压缩文件时,如果制作的压缩文件有中文文件名或中文目录,用WinZip、WinRar解压时会有乱码, 同样,用java.util.zip解压WinZip、WinRar打包的压缩文件时,中文也是乱码,主要原因是因为java.util.zip使用编码和WinZip和WinRar使用的不同,在网上找了半天,发现只有两种解决方法:
1、修改import java.util.zip.ZipInputStream和ZipOutputStream。
2、使用Apache Ant里提供的zip工具。
-------------------------------------
已找到解决方法,就是用Ant的zip来实现,Ant里面可以指定编码,而java.util.zip是写死了的,只能用UTF-8,呵呵
-------------------------------
不要使用java.util.zip的包,用ant.jar放到classpath中

//在classpath中引入ant.jar的包
import java.io.*; 
import java.util.*;
import java.io.File;
import org.apache.tools.zip.*;

public  class  CDGGzip 
{ 
  //boolean  packFrame  =  false; 
  private File srcPath =new File("d:"+File.separator+"邢晓宁");
  private String outFilename=new String("d:"+File.separator+"邢晓宁.zip");
private int len=srcPath.listFiles().length;
private String[] filenames = new String[len];
public void setSrcPath(String src){
   srcPath=new File(src);
  }
  public File getSrcPath(){
  return srcPath;
  }
public void setOutFilename(String out){
   outFilename=out;
  }
  public String getOutFilename(){
  return outFilename;
  } 

  public void gzip(){
byte[] buf = new byte[1024];
  try {
  File[]  files  =  srcPath.listFiles();
  for(int  i=0;i<len;i++)
  {
  //if(!files[i].isDirectory())
filenames[i]=srcPath.getPath()+File.separator+files[i].getName();
}
  ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
  for (int i=0; i<filenames.length; i++)
  {
  FileInputStream in = new FileInputStream(filenames[i]);
  out.putNextEntry(new org.apache.tools.zip.ZipEntry(files[i].getName()));
  int len;
  while ((len = in.read(buf)) > 0)
  {
  out.write(buf, 0, len);
  }

  out.closeEntry();
  in.close();
      }

      out.close();
    }
    catch (IOException e)
    {
    System.out.println(e);
    }
  }
 
  public static void main(String arg[]){
  CDGGzip cdggzip=new CDGGzip();
  cdggzip.gzip();
  }
 
}


[] [返回上一页] [打 印]
  • 上一篇文章:详解Java中的指针、引用及对象的clone
  • 下一篇文章:Java程序员面试三十二问

  • 相关文章:
  • Windows XP启动后无任何图标的解决方法
  • [图文]Vista中IE提示证书错误解决方法
  • Windows Vista常见八大疑难问题解决方法
  • 困扰JSP的一些问题与解决方法
  • Excel中常见问题及解决方法
  • Excel:常见的错误信息以及解决方法
  • Excel常见问题以及解决方法
  • Excel:常见问题以及解决方法
  • [图文]安心办公 多个Office经典故障解决方法
  • [组图]Windows系统桌面图标八大故障解决方法
  • [图文]XP打印共享四大问题及解决方法
  • 系统启动故障的十大原因及解决方法
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号