`

org.apache.tools包 解压缩zip 解决中文乱码 ant 版本冲突

    博客分类:
  • java
阅读更多

private void createDirectory(String directory, String subDirectory) {
  String dir[];
     File fl = new File(directory);
     try {
       if (subDirectory == "" && fl.exists() != true)
         fl.mkdir();
       else if (subDirectory != "") {
         dir = subDirectory.replace('\\', '/').split("/");
         for (int i = 0; i < dir.length; i++) {
           File subFile = new File(directory + File.separator + dir[i]);
           if (subFile.exists() == false)
             subFile.mkdir();
           directory += File.separator + dir[i];
         }
       }
     }
     catch (Exception ex) {
       System.out.println(ex.getMessage());
     }
 }

 public void makeZipToFile(String zipFileName, String outputDirectory) {
  try {
   ZipFile zipFile = new ZipFile(zipFileName);
   java.util.Enumeration e = zipFile.getEntries();
   ZipEntry zipEntry = null;
   createDirectory(outputDirectory, "");
   while (e.hasMoreElements()) {
    zipEntry = (ZipEntry) e.nextElement();
    System.out.println("unziping " + zipEntry.getName());
    if (zipEntry.isDirectory()) {
     String name = zipEntry.getName();
     name = name.substring(0, name.length() - 1);
     File f = new File(outputDirectory + File.separator + name);
     f.mkdir();
     System.out.println("创建目录:" + outputDirectory
       + File.separator + name);
    } else {
     String fileName = zipEntry.getName();
     fileName = fileName.replace('\\', '/');
     // System.out.println("测试文件1:" +fileName);
     if (fileName.indexOf("/") != -1) {
      createDirectory(outputDirectory, fileName.substring(0,
        fileName.lastIndexOf("/")));
      fileName = fileName.substring(
        fileName.lastIndexOf("/") + 1, fileName
          .length());
     }

     File f = new File(outputDirectory + File.separator
       + zipEntry.getName());

     f.createNewFile();
     InputStream in = zipFile.getInputStream(zipEntry);
     FileOutputStream out = new FileOutputStream(f);

     byte[] by = new byte[1024];
     int c;
     while ((c = in.read(by)) != -1) {
      out.write(by, 0, c);
     }
     out.close();
     in.close();
    }
   }
  } catch (Exception ex) {
   System.out.println(ex.getMessage());
  }
 }

----------------------------------------------------------------------------------------------------------------------------

在导入ant包时可能会有版本冲突,产生异常, 覆盖Weblogic安装文件夹下的D:\bea\weblogic81\server\lib\ant文件夹里的低版本ant.jar

  • ant.jar (1.3 MB)
  • 下载次数: 113
分享到:
评论

相关推荐

    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

    解压缩ZIP文件主要涉及`java.util.zip.ZipInputStream`和`org.apache.tools.zip.ZipEntry`。以下是一般过程: - 创建`ZipInputStream`对象,基于一个输入流(如FileInputStream),指向ZIP文件。 - 循环读取ZIP...

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

    特别地,对于中文文件名的支持,`org.apache.tools.zip`库通过正确编码和解码文件名解决了字符集问题,确保在不同系统间传输时文件名的正确性。 `org.apache.commons.httpclient.*`则是Apache Commons HttpClient库...

    利用ant.jar解压缩zip包

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

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

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

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

    通过这种方式,Apache Ant的`ant.jar`包可以很好地解决Java标准库在处理中文文件名压缩时可能出现的乱码问题。确保在处理非ASCII字符时正确设置文件和编码,能有效避免类似问题的发生。 此外,如果你在其他Java压缩...

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

    然而,如果你需要处理复杂的压缩需求,如保持文件的原始权限、处理符号链接等,可能需要借助第三方库,如`ant.jar`中的`org.apache.tools.ant.types.resources.ZipResource`等类。 描述中提到的"类文件中有解压缩两...

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

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

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

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

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

    b) 使用第三方库:Apache的Apache Commons Compress或Ant的`org.apache.tools.zip`包提供了对ZIP文件更好的支持。例如,你可以使用`ZipOutputStream`和`ZipEntry`这两个类来创建ZIP文件,并设置合适的编码,如GBK或...

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

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

    java zip 打包

    总结起来,`java zip 打包`涉及到使用`org.apache.tools.zip.*`包和可能的外部依赖`ant.jar`进行文件打包操作。在处理中文文件名时,需要特别注意字符编码问题,确保使用UTF-8编码以避免乱码。通过编写或使用像`...

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

    解决Java原生压缩组件不支持中文文件名乱码的问题 Java原生压缩组件不支持中文文件名...通过使用Apache的ant压缩组件和设置编码为GBK,可以正确地压缩中文文件名,解决了Java原生压缩组件不支持中文文件名乱码的问题。

    批量下载ant.jar

    批量下载的jar包,解决jdk自带包的中文乱码问题,org.apache.tools

    java文件压缩与解压.doc

    Java中的文件压缩主要涉及使用第三方库Apache Commons Compress或者Apache的工具包`apache.tools.zip`来进行操作。这两种方式都允许开发者轻松地对文件进行压缩或解压缩。 #### 二、Apache Tools Zip 库简介 `...

Global site tag (gtag.js) - Google Analytics