`

转 org.apache.tools.zip在Linux下压缩文件中文乱码问题

    博客分类:
  • java
阅读更多

要使用 ant 的 zip class,才能解决中文文件名乱码问题,JDK默认的我暂时还不知道如何做。

import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
	public static void write(File path, File zipFile) throws IOException {
		ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(zipFile));
		zip.setEncoding("GBK");
		Util.write(path, path, zip);
		zip.close();
	}

	private static void write(File base, File path, ZipOutputStream zip) throws IOException {
		URI rel = base.toURI().relativize(path.toURI());
		if (path.isDirectory()) {
			ZipEntry entry = new ZipEntry(rel.getPath());
			entry.setUnixMode(755);
			zip.putNextEntry(entry);
			zip.closeEntry();
			File[] files = path.listFiles();
			for (File file : files) {
				write(base, file, zip);
			}
		} else {
			ZipEntry entry = new ZipEntry(rel.getPath());
			entry.setUnixMode(644);
			zip.putNextEntry(entry);
			FileInputStream is = new FileInputStream(path);
			zip.write(IOUtils.toByteArray(is));
			is.close();
			zip.closeEntry();
		}
	}

 

分享到:
评论

相关推荐

    org.apache.tools.zip解决解压乱码问题

    import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; import org.apache.tools.zip.ZipOutputStream; /** * * 类名: ZipUtil.java * 描述:压缩/解压缩zip包处理类 * 创建...

    ant-1.7.1(org.apache.tools.zip.ZipOutputStream).zip

    总之,`ant-1.7.1(org.apache.tools.zip.ZipOutputStream).zip`这个压缩包展示了在使用Apache Ant处理包含中文文件名的Zip文件时,如何通过设置正确的字符编码来避免乱码问题。理解和掌握这些知识点对于Java开发者来...

    org.apache.tools.zip

    在Java编程语言中,`org.apache.tools.zip`是Apache Commons Compress库的一部分,它提供了一组API用于处理ZIP文件格式。这个库使得开发者能够方便地创建、读取、修改和解压缩ZIP档案,大大简化了与ZIP文件相关的...

    java压缩中文处理使用org.apache.tools.zip已经打包成jar

    java压缩中文处理使用org.apache.tools.zip已经打包成jar 只要放在LIB文件夹下,然后在JSP 或 JAVA 里引用即可。 <%@ page language="java" import="java.sql.*,java.io.*,org.apache.tools.zip.Zip" pageEncoding=...

    org.apache.tools.zip.*和org.apache.commons.httpclient.*实现远程文件打包下载,支持中文文件名

    这篇博客“org.apache.tools.zip.*和org.apache.commons.httpclient.*实现远程文件打包下载,支持中文文件名”探讨了如何利用Apache开源库来实现这个功能。Apache的`tools.zip`和`commons-httpclient`模块为开发者...

    org.apache.tools.jar

    解决压缩中文名乱码的jar包

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

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

    Java ZIP压缩一个或多个文件(解决中文名称乱码).rar

    用java.util.zipoutputstream压缩会出现中文的文件名乱码的情况,且无法设置字符集,这个版本用org.apache.tools.zip.ZipOutputStream压缩,可以自定义字符集,解决中文的文件名乱码问题。

    利用ant.jar解压缩zip包

    在IT行业中,我们经常需要处理各种类型的压缩文件,如ZIP、RAR等。这些文件通常用于存储和传输大量的数据,以减少文件的体积。在Java环境中,有一种高效且强大的工具可以帮助我们进行压缩和解压缩操作,那就是Apache...

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

    在Java编程中,处理包含中文字符的文件进行压缩时,可能会遇到中文乱码的问题。这是因为Java标准库的`java.util.zip`包在处理非ASCII字符时可能存在不兼容性,尤其是在某些编码环境下。为了解决这个问题,我们可以...

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

    Java在处理包含中文字符的压缩文件时,可能会遇到中文乱码的问题。这主要涉及两个方面:内容的中文乱码和压缩文件注释的中文乱码。以下是对这两个问题的详细解释以及解决方法。 1. 内容的中文乱码问题: 当Java...

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

    通过使用Apache Ant工具库中的Zip组件,我们能够有效地解决Java自带压缩工具在处理中文文件名或目录名时存在的问题。这种方法不仅简单易用,而且适用于大多数应用场景。希望本文能帮助开发者们更好地理解和应用这一...

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

    Ant使用了自己的实现来处理ZIP文件,其内部的`org.apache.tools.ant.types.ZipFileSet`和`org.apache.tools.ant.taskdefs.Zip`类在处理包含中文文件名的ZIP时表现得更为友好。Ant默认使用UTF-8编码,所以它能更好地...

    如何解决java压缩文件乱码问题

    在 Java 中,压缩文件时使用的 ZipOutputStream 和 ZipEntry 类都是 Apache 的开源类库,使用这两个类可以解决内容的中文乱码问题。ZipOutputStream 和 ZipEntry 都有设置编码的方法,可以使用 setEncoding 方法设置...

    android解压zip乱码处理(包括ant瘦身后的jar)

    在android开发中,有时候需要将文件打包成zip或将zip解压,如果直接用java.util.zip包下面的类会出现中文乱码,如果直接用org.apache.tools.zip(ant包中的压缩功能)会影响项目的编译时间; 故将ant包中文件瘦身,既...

    解决Java原生压缩组件不支持中文文件名乱码的问题

    在Java中,Zip压缩组件是原生的压缩工具,但是它不支持中文文件名的编码,这就会导致文件名乱码的问题。 解决这个问题的方法是使用Apache的ant压缩组件,which supports encoding for Chinese file names. Apache...

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

    在Java编程中,处理压缩和解压缩文件是常见的任务,特别是在构建自动化工具、数据传输或者存储优化场景下。本主题将深入讲解如何使用Java来解压缩ZIP文件,并介绍相关库和具体实现方法。 标题提到的"java解压缩zip...

    java文件压缩与解压.doc

    通过上述分析,我们可以看出在Java中使用Apache Tools Zip库进行文件压缩与解压是非常便捷的。开发者只需要关注业务逻辑的编写,而具体的文件操作则由库内部实现。这种方式不仅简化了代码量,也提高了程序的可维护性...

    java zip 打包

    在Java中,我们可以使用`org.apache.tools.zip.*`包来直接处理ZIP文件。这个包提供了一系列类,如`ZipOutputStream`和`ZipEntry`,用于创建和写入ZIP文件。`ZipOutputStream`是一个字节流,允许我们向ZIP文件中添加...

Global site tag (gtag.js) - Google Analytics