`
张洪财
  • 浏览: 276240 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java利用ant包对文件进行解压缩

    博客分类:
  • java
阅读更多

使用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();
}
}

分享到:
评论

相关推荐

    利用ant.jar解压缩zip包

    总的来说,利用Apache Ant的ant.jar库,无论是通过Java代码还是Ant构建文件,都能方便、高效地解压缩ZIP文件,而且对于包含中文文件名的情况,它提供了良好的支持。在实际开发中,理解并熟练运用这类工具可以极大地...

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

    标签中的“压缩文件 压缩文件夹 ant-1.9.7 java实现压缩”强调了Ant在Java环境中对单个文件和整个目录结构进行压缩的能力。Ant的`&lt;zip&gt;`任务不仅限于压缩,还可以解压缩ZIP文件,或者在现有ZIP文件中添加、删除或...

    java文件解压缩工具箱及案例

    本主题将深入探讨如何使用Java来创建一个文件解压缩工具箱,特别关注支持ZIP和RAR格式,并解决中文乱码问题。首先,我们需要了解两个核心库:`java-unrar-1.7.0-1.jar` 和 `ant-1.8.2.jar`。 `java-unrar-1.7.0-1....

    java 自动解压缩

    在这个场景中,我们提到的"java 自动解压缩"可能涉及到一个Java程序,它能够自动化地对ZIP或GZIP格式的压缩文件进行解压。此外,提到了`ant.jar`,这是Apache Ant工具的库,它是一个基于Java的任务执行框架,常用于...

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

    Java打包工具类主要涉及到的是对文件进行压缩和解压缩的操作,这是在开发过程中非常常见的一种需求,尤其是...通过深入理解`java.util.zip`包以及如何使用Ant进行文件操作,开发者可以更好地管理和打包他们的Java项目。

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

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

    java 解压缩目录下的所有文件

    java 解压缩目录下的所有文件 需要用的ant.jar 可以解决中文乱码问题

    java操作压缩文件和解压文件实例代码(经测试)

    1. **Java ZIP API**:Java标准库提供了`java.util.zip`包,该包包含了处理ZIP文件的各种类,如`ZipOutputStream`用于压缩,`ZipInputStream`用于解压缩。`ZipEntry`类代表ZIP文件中的一个条目,可以用来添加或读取...

    java 操作Zip文件(压缩、解压、加密).zip

    Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...

    java对zip、rar文件的压缩和解压缩

    ### Java对ZIP、RAR文件的压缩与解压缩技术解析 #### 概述 在实际开发过程中,文件的压缩与解压缩是一项非常常见的需求。本文将详细介绍如何使用Java语言实现ZIP和RAR格式文件的压缩与解压缩操作。文章通过具体的...

    ant打包部署工具,官方下载

    8. **插件扩展**:Ant的强大之处在于其丰富的插件系统,通过引入额外的Ant任务,可以执行更复杂的操作,如部署到应用服务器、压缩或解压缩文件等。 9. **跨平台**:由于Ant是用Java编写的,因此它可以跨平台运行,...

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

    本文将深入探讨如何利用ant.jar中的API创建一个自定义的文件压缩工具类,实现对文件和目录的zip与unzip操作,并关注编码设置的重要性。 首先,我们需要导入ant.jar库到项目中。在Java中,我们可以通过Maven或Gradle...

    用Eclipse将编译后的java字节码打包成JAR文件

    7. **查看JAR内容**:如果你需要检查JAR文件的内部结构,可以使用WinRAR或其他解压缩工具打开它。你会看到一个名为`META-INF`的文件夹,里面包含了MANIFEST.MF文件和其他可能的签名文件。 8. **高级打包选项**:...

    使用Ant编译打包

    1. **下载与解压**:首先,你需要从Apache官方网站下载Ant的最新版本压缩包,将其解压缩到你选择的任何目录,例如`C:\ant`。 2. **设置环境变量**:在Windows系统中,需要设置两个环境变量: - `ANT_HOME`:将值...

    apache-ant-1.6.5-bin.zip_ ant 1.6.5_ant_ant-1.6.5_apache ant win

    Apache Ant 是一个开源的构建工具,广泛用于Java项目构建,由Apache软件基金...通过解压缩此ZIP文件并配置环境变量,用户可以利用Ant执行各种项目构建任务。详细的使用方法和特性可通过提供的readme.txt文件进行查阅。

    ant.jar java工具

    然后,你可以创建一个Ant构建文件(通常命名为`build.xml`),在这个文件中定义压缩或解压缩的任务。例如,以下代码片段展示了如何使用`ZipTask`创建一个ZIP文件: ```xml &lt;taskdef resource="net/sf/antcontrib/...

Global site tag (gtag.js) - Google Analytics