使用ant包对文件进行解压缩,主要是为了避免中文文件名乱码。
需要先把ant.jar引入工程。
import java.io.*;
import org.apache.tools.zip.*;
public class AntZip {
public static void main(String[] args) {
try {
AntZip.zip("d:\\复件 html-xml", "d:\\复件 html-xml.zip");
AntZip.unzip("d:\\项目资料.zip", "d:\\test");
System.out.println("success");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 压缩zip文件
*/
public static void zip(String filePath, String zipFile)
throws IOException, FileNotFoundException {
File file = new File(filePath);
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile));
compressFiles(file, zos);
zos.close();
}
/**
* 递归压缩文件
*/
private static void compressFiles(File file, ZipOutputStream zos)
throws IOException, FileNotFoundException {
if (file.isDirectory()) {
File[] innerFile = file.listFiles();
if (innerFile != null) {
for (int i = 0; i < innerFile.length; i++) {
compressFiles(innerFile[i], zos);
}
}
} else {
byte[] buf = new byte[2048];
int len;
ZipEntry zipEntry = new ZipEntry(file.getName());
FileInputStream fin = new FileInputStream(file);
BufferedInputStream in = new BufferedInputStream(fin);
zos.putNextEntry(zipEntry);
while ((len = in.read(buf)) >= 0) {
zos.write(buf, 0, len);
}
in.close();
zos.closeEntry();
}
}
/**
* 解压缩zip文件
*/
public static void unzip(String zipFileName, String outputDirectory) {
try {
ZipFile zipFile = new ZipFile(zipFileName);
java.util.Enumeration e = zipFile.getEntries();
ZipEntry zipEntry = null;
while (e.hasMoreElements()) {
zipEntry = (ZipEntry) e.nextElement();
if (zipEntry.isDirectory()) {
String name = zipEntry.getName();
name = name.substring(0, name.length() - 1);
mkDirs(outputDirectory + File.separator + name);
} else {
String name = zipEntry.getName();
String dir = name.substring(0, name.lastIndexOf("/"));
mkDirs(outputDirectory + File.separator + dir);
File f = new File(outputDirectory + File.separator
+ zipEntry.getName());
f.createNewFile();
InputStream in = zipFile.getInputStream(zipEntry);
FileOutputStream out = new FileOutputStream(f);
int c;
byte[] by = new byte[1024];
while ((c = in.read(by)) != -1) {
out.write(by, 0, c);
}
out.close();
in.close();
}
}
} catch (Exception ex) {
System.out.println("解压文件异常" + ex.getMessage());
ex.printStackTrace();
}
}
/**
* 创建目录,包括子目录
*/
private static void mkDirs(String dir) throws Exception {
if (dir == null || dir.equals(""))
return;
File f1 = new File(dir);
if (!f1.exists())
f1.mkdirs();
}
}
分享到:
相关推荐
总的来说,利用Apache Ant的ant.jar库,无论是通过Java代码还是Ant构建文件,都能方便、高效地解压缩ZIP文件,而且对于包含中文文件名的情况,它提供了良好的支持。在实际开发中,理解并熟练运用这类工具可以极大地...
标签中的“压缩文件 压缩文件夹 ant-1.9.7 java实现压缩”强调了Ant在Java环境中对单个文件和整个目录结构进行压缩的能力。Ant的`<zip>`任务不仅限于压缩,还可以解压缩ZIP文件,或者在现有ZIP文件中添加、删除或...
本主题将深入探讨如何使用Java来创建一个文件解压缩工具箱,特别关注支持ZIP和RAR格式,并解决中文乱码问题。首先,我们需要了解两个核心库:`java-unrar-1.7.0-1.jar` 和 `ant-1.8.2.jar`。 `java-unrar-1.7.0-1....
在这个场景中,我们提到的"java 自动解压缩"可能涉及到一个Java程序,它能够自动化地对ZIP或GZIP格式的压缩文件进行解压。此外,提到了`ant.jar`,这是Apache Ant工具的库,它是一个基于Java的任务执行框架,常用于...
Java打包工具类主要涉及到的是对文件进行压缩和解压缩的操作,这是在开发过程中非常常见的一种需求,尤其是...通过深入理解`java.util.zip`包以及如何使用Ant进行文件操作,开发者可以更好地管理和打包他们的Java项目。
### JAVA解压ZIP多层目录文件(需ant.jar) #### 概述 本文将详细介绍一个Java方法,该方法用于解压包含多层目录结构的ZIP文件,并能够支持中文文件名。这种方法利用了Apache Ant库中的`org.apache.tools.zip....
java 解压缩目录下的所有文件 需要用的ant.jar 可以解决中文乱码问题
1. **Java ZIP API**:Java标准库提供了`java.util.zip`包,该包包含了处理ZIP文件的各种类,如`ZipOutputStream`用于压缩,`ZipInputStream`用于解压缩。`ZipEntry`类代表ZIP文件中的一个条目,可以用来添加或读取...
Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...
### Java对ZIP、RAR文件的压缩与解压缩技术解析 #### 概述 在实际开发过程中,文件的压缩与解压缩是一项非常常见的需求。本文将详细介绍如何使用Java语言实现ZIP和RAR格式文件的压缩与解压缩操作。文章通过具体的...
8. **插件扩展**:Ant的强大之处在于其丰富的插件系统,通过引入额外的Ant任务,可以执行更复杂的操作,如部署到应用服务器、压缩或解压缩文件等。 9. **跨平台**:由于Ant是用Java编写的,因此它可以跨平台运行,...
本文将深入探讨如何利用ant.jar中的API创建一个自定义的文件压缩工具类,实现对文件和目录的zip与unzip操作,并关注编码设置的重要性。 首先,我们需要导入ant.jar库到项目中。在Java中,我们可以通过Maven或Gradle...
7. **查看JAR内容**:如果你需要检查JAR文件的内部结构,可以使用WinRAR或其他解压缩工具打开它。你会看到一个名为`META-INF`的文件夹,里面包含了MANIFEST.MF文件和其他可能的签名文件。 8. **高级打包选项**:...
1. **下载与解压**:首先,你需要从Apache官方网站下载Ant的最新版本压缩包,将其解压缩到你选择的任何目录,例如`C:\ant`。 2. **设置环境变量**:在Windows系统中,需要设置两个环境变量: - `ANT_HOME`:将值...
Apache Ant 是一个开源的构建工具,广泛用于Java项目构建,由Apache软件基金...通过解压缩此ZIP文件并配置环境变量,用户可以利用Ant执行各种项目构建任务。详细的使用方法和特性可通过提供的readme.txt文件进行查阅。
然后,你可以创建一个Ant构建文件(通常命名为`build.xml`),在这个文件中定义压缩或解压缩的任务。例如,以下代码片段展示了如何使用`ZipTask`创建一个ZIP文件: ```xml <taskdef resource="net/sf/antcontrib/...