`
hhr_michael
  • 浏览: 74316 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

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

阅读更多
用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();
  }
 
}




本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/thefirstwind/archive/2005/08/04/445978.aspx
分享到:
评论

相关推荐

    ant.jar下载

    org.apache.tools.ant.taskdefs.Java org.apache.tools.ant.taskdefs.Move org.apache.tools.ant.taskdefs.Nice org.apache.tools.ant.taskdefs.Pack org.apache.tools.ant.taskdefs.Rmic org.apache.tools.ant...

    java zip 压缩 解压缩 附带ant.jar

    在Java中,我们通常使用`ZipOutputStream`来创建ZIP文件,`ZipInputStream`来读取和解压缩文件。下面是一个简单的压缩文件到ZIP的例子: ```java import java.io.*; import java.util.zip.*; public class JavaZip...

    apache-ant-zip.jar

    总的来说,"apache-ant-zip.jar"和"ZipUtil.java"为开发者提供了解决中文乱码问题的工具和方法,使得在使用Apache Ant进行构建过程中,可以正确地处理包含中文文件名的ZIP文件,从而提高项目的可移植性和用户体验。...

    JAVA解压ZIP多层目录文件(需ant.jar

    ### JAVA解压ZIP多层目录文件(需ant.jar) #### 概述 本文将详细介绍一个Java方法,该方法用于解压包含多层目录结构的ZIP文件,并能够支持中文文件名。这种方法利用了Apache Ant库中的`org.apache.tools.zip....

    java压缩zip文件解决中文乱码问题

    例如,你可以使用Ant的`&lt;zip&gt;`任务来创建ZIP文件,通过指定`encoding`属性来解决中文乱码问题: ```xml &lt;zip destfile="output.zip" encoding="UTF-8"&gt; **/*"/&gt; &lt;/zip&gt; ``` 在这个Ant脚本中,`&lt;zip&gt;`...

    处理解压问题jar.zip

    在Java编程环境中,我们经常会遇到处理压缩文件,如ZIP或JAR格式的文件。"处理解压问题jar.zip"这个标题暗示我们可能遇到了一个特定的解压缩问题,特别是在尝试解压一个名为“jar.zip”的文件时。描述中提到的异常...

    java_zip压缩与解压缩(不支持中文,ant.jar包的下支持)

    因此,如果ZIP文件中的文件名包含中文,使用`java.util.zip`进行操作时,中文文件名可能会出现乱码。为了解决这个问题,开发者需要手动设置正确的字符编码,通常是UTF-8,来确保中文文件名能够正确处理。 Ant是一个...

    java 中 zip压缩文件解压工具类

    总的来说,Java的`java.util.zip`包为处理压缩文件提供了强大的支持,包括ZIP和JAR格式。通过创建如`CompressFileUtils`这样的工具类,我们可以方便地实现文件的解压缩操作,这对于处理资源文件、打包应用或在网络上...

    ant-1.9.7jar包 java实现压缩文件文件夹

    Java标准库提供了一个名为`java.util.zip`的包,其中包含了一些类(如ZipOutputStream)用于创建ZIP格式的压缩文件。然而,这个过程通常涉及较多的代码和细节处理,而Ant提供了一种更为便捷的方法来完成这项任务。 ...

    JDK ZipEntry压缩中文文件名乱码解决

    项目中碰到问题.jdk zipEntry 压缩中文文件名乱码 ... 如果仅用到压缩,就加入ant.jar 就导致引入了一些不必要的文件,所以我找到Ant1.8的源码,然后只把需要的那一部分编译打包成了一个jar文件,供大家使用

    基于ant.jar的文件压缩工具类

    在`ZipUtil`中,我们可以定义两个主要方法:`compress`用于压缩文件或目录,`unzip`用于解压缩ZIP文件。 ```java import org.apache.tools.ant.Project; import org.apache.tools.ant.types.FileSet; import org....

    Java打包工具类(包含ant.jar和java类)

    在这个场景中,我们使用的工具有两个核心部分:`ant.jar` 和 `ZipTools.java`。 `ant.jar` 是Apache Ant的库文件,它是一个基于Java的任务驱动的构建系统。Ant广泛用于自动化Java项目的构建、编译、测试和打包过程...

    java压缩(zip)中文问题完美解决

    此外,如果你在其他Java压缩库或API中遇到类似问题,可以考虑采用类似的方法,即明确指定编码方式,比如在使用`java.util.zip`时,可以使用`ZipOutputStream`的`setEncoding()`方法来指定编码。但是,通常情况下,...

    Java压缩文件目录成ZIP包最新技巧

    本文将详细介绍如何使用`java.util.zip`包中的类来压缩文件及目录,并解决其中的一个常见问题——中文文件名或目录名的支持问题。 #### 一、Java自带压缩工具简介 Java标准库提供了`java.util.zip`包来处理文件的...

    解压zip压缩文件,支持多文件目录解压,中文乱码问题

    在使用Java对ZIP压缩文件进行解压的方式中有两种,一种是使用apache提供的ant.jar工具包,但是如果ZIP文件中含有中文名称的文件,在解压后,文件名将出现乱码,另一种是使用Java自身JDK中java.util.zip包下工具类,...

    java解压和压缩ZIP文件的功能

    这篇内容将深入讲解如何使用Java实现ZIP文件的压缩和解压功能,并结合给定的`ant.jar`库和`ZipUtil.java`源代码文件来理解其实现原理。 首先,`ant.jar`是Apache Ant的库文件,Ant是一个基于Java的构建工具,它可以...

    java解压缩zip代码与用到的jar包

    标题提到的"java解压缩zip代码与用到的jar包"主要涉及了Java对ZIP文件的操作,以及一个名为`ant.jar`的第三方库。`ant.jar`是Apache Ant的核心库,它是一个基于Java的任务执行工具,广泛用于构建项目,其中包含了...

    ant.jar java工具

    本篇文章将深入探讨`ant.jar`的用途、功能以及如何在Java项目中使用它来优化文件压缩操作。 `ant.jar`是Apache Ant的核心库,Ant是一个基于Java的构建工具,广泛用于自动化Java项目的构建、测试和部署过程。这个...

    zip4j-1.3.2.jar包和使用范例.zip

    本教程将详细介绍如何使用`zip4j`库以及提供相关的使用示例。 首先,`zip4j`库的核心功能包括: 1. **创建ZIP文件**:可以将多个文件或目录添加到一个新的ZIP文件中。 2. **添加文件到现有ZIP**:如果ZIP文件已经...

    com.ibm.rsm.interaction.util.zip

    7. `META-INF`:这个目录是Java存档(JAR)文件的标准部分,通常包含MANIFEST.MF文件,描述了JAR的内容和版本信息。 8. `src`:源代码目录,包含了项目的Java源代码或其他源代码文件。 综上所述,这个zip文件可能...

Global site tag (gtag.js) - Google Analytics