`

ava压缩文件--关于压缩文件名是乱码的解决方案

 
阅读更多
方法一:truezip.jar
参阅:http://jwin.javaeye.com/blog/23859
使用java.util.zip下的类进行zip压缩,它使用的是uft-8的编码方式,这样会引起中文名变成乱码的情况,解决的方法是用truezip.jar下的类,truezip的相关介绍和下载见https://truezip.dev.java.net/

注意:CopyUtils.copy(fis,zout); 所以不推荐使用,或者相应的替代。

方法二:ant.jar (推荐使用)
参阅:http://topic.csdn.net/t/20050628/00/4108770.html
用java.util.zip制作zip压缩文件时,如果制作的压缩文件有中文文件名或中文目录,用WinZip、WinRar解压时会有乱码,同样,用java.util.zip解压WinZip、WinRar打包的压缩文件时,中文也是乱码,主要原因是因为java.util.zip使用编码和WinZip和WinRar使用的不同(java.util.zip是写死了的,只能用UTF-8),解决方法:使用Apache   Ant里提供的zip工具(Ant里面可以指定编码)。 

示例:
import java.io.*;

import org.apache.commons.io.CopyUtils;

import de.schlichtherle.io.FileInputStream;
import de.schlichtherle.io.FileOutputStream;
import de.schlichtherle.util.zip.ZipEntry;
import de.schlichtherle.util.zip.ZipOutputStream;

public class TestTrueZip {
   public static void main(String[] args) throws Exception {
      String needtozipfilepath = "E:/zip-temp/11/";     String zipfilepath = "E:/zip-temp/测试压缩-truezip.rar";
      TestTrueZip test = new TestTrueZip();
      test.createDownLoadZipFileByTrueZip(needtozipfilepath, zipfilepath);
   }

   public void createDownLoadZipFileByTrueZip(String needtozipfilepath,
        String zipFileName) throws Exception {
      File needtozipfile = new File(needtozipfilepath);
      File zipfile = new File(zipFileName);
      FileOutputStream fout = new FileOutputStream(zipfile);
      ZipOutputStream zout = new ZipOutputStream(fout, "GBK"); // 解决中文问题的关键所在
      try {
        for (File in : needtozipfile.listFiles()) {
           ZipEntry ze = new ZipEntry(in.getName());
           zout.putNextEntry(ze);
           FileInputStream fis = new FileInputStream(in);
           try {
              CopyUtils.copy(fis, zout);
           } catch (IOException e) {         
           } finally {
              if (fis != null)
                 fis.close();
              zout.closeEntry();
           }
        }
      } catch (IOException e) {
      } finally {
        if (zout != null)
        {  zout.close();
           fout.close();
           }
      }
   }
}

import java.io.*;

import org.apache.tools.zip.ZipOutputStream;

public class TestAntZip {
   public static void main(String arg[]) {
      String srcPath = "E:/zip-temp/11/";
      String outFilename = new String("E:/zip-temp/测试压缩-antzip.rar");   
      TestAntZip cdggzip = new TestAntZip();
      cdggzip.createDownLoadZipFileByAntZip(srcPath,outFilename);
   }
 
   public void createDownLoadZipFileByAntZip(String needtozipfilepath, String zipFileName){
      try {
        File srcPath = new File(needtozipfilepath);
        int len1 = srcPath.listFiles().length;
        String[] filenames = new String[len1];
        byte[] buf = new byte[1024];
        File[] files = srcPath.listFiles();
        for (int i = 0; i < len1; i++) {        
           filenames[i] = srcPath.getPath() + File.separator
                 + files[i].getName();
        }
        ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
              zipFileName));
        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 (Exception e) {
      }  }
}
分享到:
评论

相关推荐

    ava-8-Features

    - 类依赖性分析器:jdeps是一个新的工具,用于分析Java类文件的依赖关系,有助于理解应用程序的依赖结构。 5. Java运行时(JVM)的新特性: - 新的JVM工具:Java 8为JVM引入了新的诊断和监控工具,比如jcmd、jmc...

    PyPI 官网下载 | ava_engine-0.6.5.tar.gz

    tar.gz文件格式是一种常见的归档文件格式,通常用于Linux和Unix环境,它将所有相关文件打包成一个压缩文件,方便用户下载和安装。 ava_engine的核心功能很可能涉及到分布式系统的设计和实现。在现代互联网服务中,...

    Python库 | ava_engine-0.11.2rc2.tar.gz

    《Python库ava_engine-0.11.2rc2详解》 在信息技术领域,Python以其简洁易读的语法和强大的库支持,成为了开发者们青睐的编程语言之一。今天我们要探讨的是一个名为ava_engine的Python库,它在版本0.11.2rc2中提供...

    ava压缩文件zip简单易用,附带包

    在Java编程语言中,处理压缩文件,特别是ZIP格式的压缩文件,是一项常见的任务。ZIP文件格式是一种广泛使用的压缩格式,可以包含多个文件和目录,并且能够有效地减小文件的存储空间。Apache Commons Compress库是...

    基于Spring Boot和WxJava的微信小程序Java后端Demow_eixin-ava-miniapp-de

    基于Spring Boot和WxJava的微信小程序Java后端Demow_eixin-ava-miniapp-demo的实现

    ava7windows-v67.zip

    这个名为"ava7windows-v67.zip"的压缩包文件显然包含了与Java 7更新67(Java 7 Update 67)相关的组件,这是一次重要的更新,旨在提供性能改进、安全修复以及对新特性的支持。在描述中提到了IPAD,暗示了这个Java...

    PyPI 官网下载 | ava_engine-0.11.0rc3.tar.gz

    《PyPI官网下载ava_engine-0.11.0rc3.tar.gz——探索Python云原生分布式库》 PyPI(Python Package Index)是Python开发者的重要资源库,它提供了丰富的Python软件包,供全球的Python程序员下载和使用。在本文中,...

    ava-testing-examples:ava-testing-examples

    标题 "ava-testing-examples" 和描述 "ava-testing-examples ava-testing-examples" 暗示这是一个关于使用 Java 编程语言进行测试的项目,而标签 "JavaScript" 可能表明这个项目同时也涉及到 JavaScript 的测试实践...

    Python库 | ava_engine-0.11.3rc2.tar.gz

    《Python库ava_engine-0.11.3rc2:后端开发的高效工具》 在编程领域,Python因其简洁的语法和强大的功能而备受推崇,尤其在后端开发中,Python库扮演着至关重要的角色。ava_engine就是这样一款专为Python开发者设计...

    ava-fast-check:基于快速检查的AVA基于属性的测试

    ava-fast-check简化了将快速检查集成到AVA测试框架中的过程。 入门 安装ava-fast-check及其对等项依赖项: npm install --save-dev ava fast-check ava-fast-check 例子 import { testProp , fc } from 'ava-fast-...

    ava实战项目--个人资产管理系统

    在本项目"Java实战项目--个人资产管理系统"中,我们主要关注的是利用Java技术栈构建一个客户端/服务器(C/S)架构的应用程序,用于管理个人财务和资产。... 首先,我们需要了解C/S架构。这种架构由两部分组成:客户端...

    Python库 | ava_engine-0.11.3rc3.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:ava_engine-0.11.3rc3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    AVA.txtAVA数据集压缩文件中包含的是整个AVA数据集,在官网下载下来的都是文本,作者手写了一个程序将一个个图片爬下来,仅供大家参考学习,如果纰漏欢迎指出

    AVA数据集压缩文件中包含的是整个AVA数据集,在官网下载下来的都是文本,作者手写了一个程序将一个个图片爬下来,仅供大家参考学习,如果纰漏欢迎指出。

    Java面试题-ava-interview-questions-master.zip

    JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。...

    ava-fixture-docker-db:获取附加到您的ava测试上下文的新docker数据库容器

    ava-fixture-docker-db 获取附加到您的ava测试上下文的新docker数据库容器 用法 import ava , { TestInterface } from 'ava' import { db , DbContext } from 'ava-fixture-docker-db' const test = ava as ...

    解决Tomcat跨域的jar包,java-property-utils-1.9.jar

    针对这个问题,Tomcat服务器提供了多种解决方案,其中之一就是通过使用特定的jar包来处理跨域请求。这里提到的`java-property-utils-1.9.jar`并不是直接解决跨域问题的库,但它可能在配置或辅助处理跨域问题的过程中...

    ava支持的zip压缩和解压缩

    gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩。 Java I/O类库还收录了一些能读写压缩格式流的类。要想提供压缩功能,只要...

    ava-08-testagem-teste-unitario-jest-victor-espinellinunes:ava-08-testagem-teste-unitario-jest-victor-espinellinunes由GitHub Classroom创建

    不可分割的实施方案,如不可分割的不可分割的部分,不可分割的不可分割的部分,不可分割的部分被称为原始的不可分割的部分。 示例: 比较价36.15雷亚尔parcelada emtrêsvezes: 1 parcela 12,00 2 parcela 12,00...

    Java版开源Winzip压缩工具源码

    ZIP格式是一种广泛使用的压缩格式,它包含了一个或多个压缩文件或目录。开发者可以学习如何使用这些类来实现数据的压缩和解压缩。 3. **文件夹遍历**:在压缩或解压缩整个目录时,需要遍历所有子文件和子目录。Java...

    ava Basic-2015-2.zi

    这个压缩包文件"Java Basic-2015-2.zip"包含两个关键的学习资源:"Java Basic-2015-2.pptx"和"Java Basic-2015.pptx",它们很可能是PowerPoint演示文稿,用于教学或自学。 在Java编程的基础部分,我们通常会学习...

Global site tag (gtag.js) - Google Analytics