`

解压缩工具类ZIPUtil

阅读更多
import java.io.File;   
import java.io.FileOutputStream;   
import java.io.IOException;   
import java.io.InputStream;   
import java.io.OutputStream;   
import java.util.Enumeration;   
import java.util.zip.ZipEntry;   
import java.util.zip.ZipFile;   
    
/**  
 * ZIP 压缩包读取和解压工具类
 * @author Ruanzhiyong6496  
 */  
public class ZIPUtil{   
    
    public static void main(String[] args) throws IOException {   
        ZipFile zip = new ZipFile("junit.jar");   
        Enumeration<? extends ZipEntry> entries = zip.entries();   
    
        // 遍历压缩包   
        while (entries.hasMoreElements()) {   
            ZipEntry entry = entries.nextElement();   
    
            if (!entry.isDirectory()) {   
                // 输出被压缩的文件信息   
                System.out.print(entry.getName() +   
                        "   (compressed from " + entry.getSize() +   
                        " to " + entry.getCompressedSize() + ")...");   
    
                // 解压缩文件   
                InputStream is = zip.getInputStream(entry);   
                FileOutputStream fos = new FileOutputStream(getFile("junit", entry.getName()));   
                copyStream(is, fos);   
                System.out.println("decompressed.");   
            }   
        }   
    }   
    
    private static File getFile(String root, String path) {   
        File file = new File(root + "/" + path);   
        if (!file.exists()) {   
            file.getParentFile().mkdirs();   
        }   
        return file;   
    }   
    
    private static void copyStream(InputStream is, OutputStream os) {   
        try {   
            byte[] buffer = new byte[10240];   
            int size = 0;   
    
            while ((size = is.read(buffer)) != -1) {   
                os.write(buffer, 0, size);   
            }   
    
        } catch (IOException e) {   
            e.printStackTrace();   
        } finally {   
            try {   
                is.close();   
            } catch (IOException ex) {   
                // nothing to do   
            }   
            try {   
                os.close();   
            } catch (IOException ex) {   
                // nothing to do   
            }   
        }   
    
    }   
}

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ZipUtil文件压缩工具类(解决中文乱码)

    总之,`ZipUtil`文件压缩工具类通过结合`ZipEntry`和`ZipOutputStream`,提供了一种高效且健壮的解决方案,尤其适合处理包含中文字符的文件和目录,确保在压缩和解压过程中不会出现乱码问题。这对于需要在Java应用...

    Java实现的zip压缩及解压缩工具类示例

    "Java实现的zip压缩及解压缩工具类示例" Java实现的zip压缩及解压缩工具类示例主要介绍了Java实现的zip压缩及解压缩工具类,结合实例形式分析了java对文件的进行zip压缩及解压缩的具体操作技巧。下面将对该工具类的...

    java 打包文件(文件夹)为 zip压缩包 java 压缩文件

    10. **标签“工具”**: 可能意味着`ZIPUtil`不仅仅是一个简单的功能,它可能是一个更复杂的工具,具有更多的功能,比如解压缩,支持多种压缩格式等。 11. **文件“ant.jar”**: 这是一个可能的依赖库,可能包含了...

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

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

    c++ zip 压缩 解压缩

    在C++编程中,处理文件压缩和解压缩是一项...`ZipUtil`这个类很可能包含了上述提到的所有功能,实现了从文件和目录的压缩到解压缩的完整流程。在实际应用中,你可以根据需求调整和扩展这个工具,以满足特定项目的需求。

    JAVA源码JAVA文件压缩与解压缩实践(源代码+论文)

    Java提供了强大的压缩工具类,如`java.util.zip`包下的`ZipFile`、`ZipInputStream`、`ZipOutputStream`等类,可以方便地进行ZIP格式的压缩和解压缩操作。 - **ZipOutputStream**:用于创建ZIP格式的压缩文件。 - *...

    ZipUtil.rar

    5. **解压缩ZIP**:解压ZIP文件涉及以下操作: - 创建`ZipInputStream`,读取ZIP文件。 - 使用`getNextEntry()`遍历ZIP文件中的每个条目。 - 对于每个条目,创建一个`File`对象,表示解压后的文件或目录。 - ...

    使用java基础类实现zip压缩和zip解压工具类分享

    我们将会分析提供的`ZipUtil`工具类,了解其核心方法和工作原理。 首先,`ZipUtil`类包含两个主要方法:`zip`用于压缩文件或目录,`unzip`用于解压缩ZIP文件。这两个方法都是静态的,可以直接通过类名调用,无需...

    基于Java向zip压缩包追加文件

    当需要向已存在的ZIP文件追加文件时,首先使用`ZipUtil`解压缩ZIP文件到一个临时目录,然后在该目录中添加新的文件,最后重新压缩整个目录并覆盖原有的ZIP文件。以下是大致的步骤: - 使用`ZipUtil`的`unzip`方法...

    仿zip压缩软件的java代码|zip.rar

    本项目是作者使用Eclipse开发的一个简单但功能齐全的ZIP压缩与解压缩工具,它包含了文件分割、进度条显示以及图形用户界面(GUI)。 【描述】:该项目的核心在于理解ZIP文件格式规范和Java的I/O流以及压缩算法。...

    C# 压缩源码

    2. **ZipUtil.cs**:这个文件名暗示可能是一个自定义的压缩工具类,包含了一系列用于压缩和解压缩的方法。在C#中,通常会创建这样的辅助类,封装压缩操作,以提高代码复用性。 3. **FileUtil.cs**:同样,FileUtil...

    java实用工具(zip)

    标签中的"源码"和"工具"可能指的是通过阅读和分析Java标准库中的`java.util.zip`源代码,以及利用这些API创建自己的工具类或实用程序,以适应特定的项目需求。 通过以上知识点,开发者可以有效地在Java环境中处理....

    将文件进行zip压缩并base64加密和解密

    解密时,先使用`Base64Util.decodeBase64StringToFile()`将BASE64字符串解码回ZIP文件,再使用相应的工具解压缩。 在实际开发中,这些工具类可以封装成一个完整的库,提供给其他部分代码使用。例如,你可以创建一个...

    Java带密码压缩zip与解压文件源码

    接下来,我们编写一个名为`ZipUtil`的工具类,它包含了压缩和解压缩的功能: ```java import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.util.io.TeeOutputStream; import ...

    java多重打包解压ZIP文件

    解压缩ZIP文件则涉及`ZipInputStream`的使用。以下是一个基本的解压示例: ```java import java.io.*; import java.util.zip.*; public class UnzipUtil { public static void unzipFile(String zipFileName, ...

    Java解压zip文件完整代码分享

    如果你的项目不使用任何构建工具,你可以手动下载jar文件并将其添加到项目的类路径中。 ```xml &lt;!-- Maven --&gt; &lt;groupId&gt;org.apache.commons &lt;artifactId&gt;commons-compress &lt;version&gt;1.21 ``` 或 ```groovy ...

Global site tag (gtag.js) - Google Analytics