要使用 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(); } }
相关推荐
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`这个压缩包展示了在使用Apache Ant处理包含中文文件名的Zip文件时,如何通过设置正确的字符编码来避免乱码问题。理解和掌握这些知识点对于Java开发者来...
在Java编程语言中,`org.apache.tools.zip`是Apache Commons Compress库的一部分,它提供了一组API用于处理ZIP文件格式。这个库使得开发者能够方便地创建、读取、修改和解压缩ZIP档案,大大简化了与ZIP文件相关的...
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.*实现远程文件打包下载,支持中文文件名”探讨了如何利用Apache开源库来实现这个功能。Apache的`tools.zip`和`commons-httpclient`模块为开发者...
解决压缩中文名乱码的jar包
在使用Java对ZIP压缩文件进行解压的方式中有两种,一种是使用apache提供的ant.jar工具包,但是如果ZIP文件中含有中文名称的文件,在解压后,文件名将出现乱码,另一种是使用Java自身JDK中java.util.zip包下工具类,...
用java.util.zipoutputstream压缩会出现中文的文件名乱码的情况,且无法设置字符集,这个版本用org.apache.tools.zip.ZipOutputStream压缩,可以自定义字符集,解决中文的文件名乱码问题。
在IT行业中,我们经常需要处理各种类型的压缩文件,如ZIP、RAR等。这些文件通常用于存储和传输大量的数据,以减少文件的体积。在Java环境中,有一种高效且强大的工具可以帮助我们进行压缩和解压缩操作,那就是Apache...
在Java编程中,处理包含中文字符的文件进行压缩时,可能会遇到中文乱码的问题。这是因为Java标准库的`java.util.zip`包在处理非ASCII字符时可能存在不兼容性,尤其是在某些编码环境下。为了解决这个问题,我们可以...
Java在处理包含中文字符的压缩文件时,可能会遇到中文乱码的问题。这主要涉及两个方面:内容的中文乱码和压缩文件注释的中文乱码。以下是对这两个问题的详细解释以及解决方法。 1. 内容的中文乱码问题: 当Java...
通过使用Apache Ant工具库中的Zip组件,我们能够有效地解决Java自带压缩工具在处理中文文件名或目录名时存在的问题。这种方法不仅简单易用,而且适用于大多数应用场景。希望本文能帮助开发者们更好地理解和应用这一...
Ant使用了自己的实现来处理ZIP文件,其内部的`org.apache.tools.ant.types.ZipFileSet`和`org.apache.tools.ant.taskdefs.Zip`类在处理包含中文文件名的ZIP时表现得更为友好。Ant默认使用UTF-8编码,所以它能更好地...
在 Java 中,压缩文件时使用的 ZipOutputStream 和 ZipEntry 类都是 Apache 的开源类库,使用这两个类可以解决内容的中文乱码问题。ZipOutputStream 和 ZipEntry 都有设置编码的方法,可以使用 setEncoding 方法设置...
在android开发中,有时候需要将文件打包成zip或将zip解压,如果直接用java.util.zip包下面的类会出现中文乱码,如果直接用org.apache.tools.zip(ant包中的压缩功能)会影响项目的编译时间; 故将ant包中文件瘦身,既...
在Java中,Zip压缩组件是原生的压缩工具,但是它不支持中文文件名的编码,这就会导致文件名乱码的问题。 解决这个问题的方法是使用Apache的ant压缩组件,which supports encoding for Chinese file names. Apache...
在Java编程中,处理压缩和解压缩文件是常见的任务,特别是在构建自动化工具、数据传输或者存储优化场景下。本主题将深入讲解如何使用Java来解压缩ZIP文件,并介绍相关库和具体实现方法。 标题提到的"java解压缩zip...
通过上述分析,我们可以看出在Java中使用Apache Tools Zip库进行文件压缩与解压是非常便捷的。开发者只需要关注业务逻辑的编写,而具体的文件操作则由库内部实现。这种方式不仅简化了代码量,也提高了程序的可维护性...
在Java中,我们可以使用`org.apache.tools.zip.*`包来直接处理ZIP文件。这个包提供了一系列类,如`ZipOutputStream`和`ZipEntry`,用于创建和写入ZIP文件。`ZipOutputStream`是一个字节流,允许我们向ZIP文件中添加...