由于jdk自带的压缩功能存在编码问题,所以使用apache工具包。
/**
*
* @function:文件zip压缩
* @param zipPath
* 压缩目标路径
* @param srcPath
* 被压缩文件路径
* @throws BusinessException
* @author: mengqingyu 2013-8-22 上午10:59:37
*/
public static void zipFiles(String zipPath, String srcPath) throws BusinessException {
File srcFile = new File(srcPath);
ZipOutputStream zos = null;
InputStream is = null;
byte[] buf = null;
try {
zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipPath)));
is = new BufferedInputStream(new FileInputStream(srcFile));
buf = new byte[is.available()];
is.read(buf);
} catch (Exception e) {
log.error(e);
} finally {
try {
is.close();
} catch (IOException e1) {
log.error(e1);
}
}
try {
zos.putNextEntry(new ZipEntry(srcFile.getName()));
zos.write(buf);
zos.setEncoding("gbk");
} catch (IOException e) {
log.error(e);
} finally {
try {
zos.closeEntry();
zos.close();
} catch (IOException e1) {
log.error(e1);
}
}
}
分享到:
相关推荐
import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; import org.apache.tools.zip.ZipOutputStream; /** * * 类名: ZipUtil.java * 描述:压缩/解压缩zip包处理类 * 创建...
http://mirror.bjtu.edu.cn/apache//ant/source/apache-ant-1.8.2-src.zip 使用我自己包,直接放到WEB-INF\classes下解压即可, 在程序中加上 outf.setEncoding("gbk");即可 下面是我的多个文件压缩成一个的压缩...
java压缩中文处理使用org.apache.tools.zip已经打包成jar 只要放在LIB文件夹下,然后在JSP 或 JAVA 里引用即可。 <%@ page language="java" import="java.sql.*,java.io.*,org.apache.tools.zip.Zip" pageEncoding=...
这个版本包含了对Zip文件格式的支持,其中`org.apache.tools.zip.ZipOutputStream`是Ant用来创建Zip压缩文件的核心类。在处理中文文件名时,可能会遇到乱码问题,这是由于字符编码不一致所导致的。 描述中提到的...
解压缩ZIP文件主要涉及`java.util.zip.ZipInputStream`和`org.apache.tools.zip.ZipEntry`。以下是一般过程: - 创建`ZipInputStream`对象,基于一个输入流(如FileInputStream),指向ZIP文件。 - 循环读取ZIP...
2. **创建ZIP输出流**:使用`java.io.FileOutputStream`和`org.apache.tools.zip.ZipOutputStream`,为将要创建的ZIP文件创建一个输出流。 3. **获取远程文件列表**:可能通过HTTP GET请求获取远程服务器上的文件...
Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...
通过使用Apache Ant库中的`org.apache.tools.zip.ZipFile`类,能够轻松地处理复杂的文件结构,满足各种应用场景的需求。此外,这种方法还考虑到了异常处理,确保了解压过程的健壮性。对于需要频繁处理ZIP文件的应用...
这些功能使得Apache Ant成为Java开发中的强大工具,尤其是在自动化构建过程中处理ZIP文件时。不过,由于Maven仓库中没有2.3版本,可能意味着这个版本较旧或者已被更现代的替代品取代。因此,建议评估使用此特定版本...
以上就是使用Apache Ant的`Zip`类进行Java文件压缩的基本操作和相关知识点。这个工具类不仅简单易用,而且功能强大,能满足大部分文件压缩的需求。在实际项目中,根据具体需求,你还可以扩展它的功能,比如添加解压...
### Java简单压缩算法:利用Apache Ant进行文件夹压缩 在Java开发中,文件的压缩与解压是一项常见的需求,尤其是在处理大量数据或需要传输大文件时。本文将深入解析一个基于Java的简单压缩算法,该算法利用Apache ...
import org.apache.tools.zip.ZipOutputStream; public class ZipCompressor { static final int BUFFER = 8192; private File zipFile; public ZipCompressor(String pathName) { zipFile = new File...
Java中的文件压缩主要涉及使用第三方库Apache Commons Compress或者Apache的工具包`apache.tools.zip`来进行操作。这两种方式都允许开发者轻松地对文件进行压缩或解压缩。 #### 二、Apache Tools Zip 库简介 `...
此外,如果你在其他Java压缩库或API中遇到类似问题,可以考虑采用类似的方法,即明确指定编码方式,比如在使用`java.util.zip`时,可以使用`ZipOutputStream`的`setEncoding()`方法来指定编码。但是,通常情况下,...
import org.apache.tools.zip.*; public class AdapterZipFile { String zipFileName = null; // ZIP文件路径 String outputDirectory = null; // 解压目标目录 ArrayList list = new ArrayList(); // 文件列表 ...
总的来说,利用Apache Ant的ant.jar库,无论是通过Java代码还是Ant构建文件,都能方便、高效地解压缩ZIP文件,而且对于包含中文文件名的情况,它提供了良好的支持。在实际开发中,理解并熟练运用这类工具可以极大地...
用java.util.zipoutputstream压缩会出现中文的文件名乱码的情况,且无法设置字符集,这个版本用org.apache.tools.zip.ZipOutputStream压缩,可以自定义字符集,解决中文的文件名乱码问题。