信息发布软件,b2b软件,广告发布软件

标题: JDK ZipEntry压缩中文文件名乱码解决和实例教程 [打印本页]

作者: 信息发布软件    时间: 2016-10-12 13:09
标题: JDK ZipEntry压缩中文文件名乱码解决和实例教程
摘要: 使用jdk自带的zip工具类Java.util.zip.ZipEntry,java.util.zip.ZipFile,java.util.zip.ZipInputStream,java.util.zip.ZipOutputStream 进行zip压缩时,没法解决文件名中文乱码问题 这里使用apac...
使用jdk自带的zip工具类Java.util.zip.ZipEntry,java.util.zip.ZipFile,java.util.zip.ZipInputStream,java.util.zip.ZipOutputStream 进行zip压缩时,没法解决文件名中文乱码问题
这里使用apache 旗下的commons-compress 库,官网是:http://commons.apache.org/proper ... wnload_compress.cgi

我使用maven 进行构建,pom配置如下:
Xml代码  


commons-compress 解决了文件名中文乱码问题,参考:http://www.cnblogs.com/un4sure/archive/2011/09/27/2193298.html
范例:
(1)压缩单个文件:
压缩D:\\Temp\\a\\password_密码.xls,压缩后的zip文件是d:\\Temp\\a\\a\\b\\c.zip
Java代码  


运行之后会生成文件d:\\Temp\\a\\a\\b\\c.zip:
JDK ZipEntry压缩中文文件名乱码解决和实例教程 b2b软件
(1)压缩多个文件:
Java代码  


压缩后的zip文件:
JDK ZipEntry压缩中文文件名乱码解决和实例教程 b2b软件



作者: 信息发布软件    时间: 2016-10-12 13:10
实例教程2

项目中碰到问题.jdk zipEntry 压缩中文文件名乱码
  上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream 的源文件,比较麻烦,不建议此项.
  第二种 就是拿来主义,因为 开源项目 Ant 里已经有现成的实现.把ant.jar 加入到 工程下的lib目录即可.
  如果仅用到压缩,就加入ant.jar 就导致引入了一些不必要的文件,所以我找到Ant1.8的源码,然后只把需要的那一部分编译打包成了一个jar文件,供大家使用
  首先引入
  Java代码
  import org.apache.tools.zip.ZipEntry;
  import org.apache.tools.zip.ZipOutputStream;
  关键示例代码如下:
  Java代码
  zos = new ZipOutputStream(new FileOutputStream(zipname));
  FileInputStream fis = new FileInputStream(file);
  ZipEntry ze = new ZipEntry(file.getName());
  ze.setSize(file.length());
  ze.setTime(file.lastModified());
  zos.putNextEntry(ze);       zos.setEncoding("gbk");






欢迎光临 信息发布软件,b2b软件,广告发布软件 (http://postbbs.com/) Powered by Discuz! X3.2