java解压zip文件

这篇具有很好参考价值的文章主要介绍了java解压zip文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

zip文件目录结构如下:

java解压zip文件

其中,word下面还有多个子目录,可以递归进行解压目录,核心代码如下:文章来源地址https://www.toymoban.com/news/detail-505654.html

package com.atguigu.common.utils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

/**
 * @ClassName Test
 * @Description java实现解压zip文件
 * @Author mischen
 * @Date 2023/2/25 7:57
 * @Version 1.0
 **/
public class Test {

    public static void main(String[] args) {
        File sourefile = new File("F:\\test1\\demo.zip");
        String dest = "F:\\test1\\demo";
        unZip(sourefile,dest);
        System.out.println("解压成功!");
    }

    /**
     * zip解压
     * @param srcFile        zip源文件
     * @param destDirPath     解压后的目标文件夹
     * @throws RuntimeException 解压失败会抛出运行时异常
     * @author mischen
     * @date 2023-02-25
     */

    public static void unZip(File srcFile, String destDirPath) throws RuntimeException {
        long start = System.currentTimeMillis();
        // 判断源文件是否存在
        if (!srcFile.exists()) {
            throw new RuntimeException(srcFile.getPath() + "所指文件不存在");

        }
        // 开始解压
        ZipFile zipFile = null;

        try {
            zipFile = new ZipFile(srcFile);
            Enumeration<?> entries = zipFile.entries();
            while (entries.hasMoreElements()) {
                ZipEntry entry = (ZipEntry) entries.nextElement();
                System.out.println("解压" + entry.getName());

                // 如果是文件夹,就创建个文件夹
                if (entry.isDirectory()) {
                    String dirPath = destDirPath + "/" + entry.getName();
                    File dir = new File(dirPath);
                    dir.mkdirs();

                } else {
                    // 如果是文件,就先创建一个文件,然后用io流把内容copy过去
                    File targetFile = new File(destDirPath + "/" + entry.getName());
                    // 保证这个文件的父文件夹必须要存在
                    if(!targetFile.getParentFile().exists()){
                        targetFile.getParentFile().mkdirs();

                    }
                    targetFile.createNewFile();

                    // 将压缩文件内容写入到这个文件中
                    InputStream is = zipFile.getInputStream(entry);
                    FileOutputStream fos = new FileOutputStream(targetFile);
                    int len;
                    byte[] buf = new byte[1024];

                    while ((len = is.read(buf)) != -1) {
                        fos.write(buf, 0, len);

                    }
                    // 关流顺序,先打开的后关闭
                    fos.close();
                    is.close();
                }
            }
            long end = System.currentTimeMillis();
            System.out.println("解压完成,耗时:" + (end - start) +" ms");

        } catch (Exception e) {
            throw new RuntimeException("unzip error from ZipUtils", e);
        } finally {
            if(zipFile != null){
                try {
                    zipFile.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

到了这里,关于java解压zip文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows 解压文件出现乱码 7zip解压文件中文乱码 解决方法

    按照如下教程,更改windows默认编码格式为utf-8之后。 https://blog.csdn.net/qq_43780850/article/details/129122210 解压文件时,文件中的中文出现乱码。原因是压缩文件的格式为GBK,而我将windows平台的默认编码改成了UTF-8,导致解压出现乱码。此时只需要按照上面的教程,取消勾选utf-8支持

    2024年02月13日
    浏览(49)
  • CentOS系统解压ZIP文件

    在CentOS系统上,您可以使用命令行工具来解压ZIP文件。ZIP文件是一种常见的压缩文件格式,它可以将多个文件和文件夹打包成一个单独的文件。下面是在CentOS系统上解压ZIP文件的详细步骤。 确保您已经在CentOS系统上安装了unzip工具。如果未安装,可以使用以下命令进行安装:

    2024年02月04日
    浏览(41)
  • Linux下解压.zip文件

    将指定文件(当前目录下的xxx.zip)解压到当前目录 将指定文件(/usr/src/xxx.zip)解压到指定目录(/usr/src/target_folder) 压缩指定文件a.out成a.zip文件 压缩指定目录/home/temp下的所有文件与子目录成a.zip文件

    2024年02月16日
    浏览(41)
  • (总目录)springboot - 实现zip文件上传并对zip文件解压, 包含上传oss

    本文会包含 java 文件校验 文件上传 文件压缩 zip文件的解压 oss的文件上传 oss前端上传 文章像齿轮一样, 部分位置需要自己组装满足不同业务需求 需要哪个就加哪个 注意类型和位置即可 注释都是很全的 如果在使用中 遇到问题 欢迎评论区指正 === 传送门: MultipartFile 统一文件

    2024年02月07日
    浏览(54)
  • Linux下解压.zip格式文件的方法

    在Linux操作系统中,我们经常需要处理各种文件压缩格式,其中.zip格式是一种常见的压缩文件类型。本文将介绍如何在Linux系统中解压.zip格式的文件,并提供相应的源代码示例。 首先,我们需要确保系统中已经安装了zip工具。如果尚未安装,可以使用以下命令进行安装: 安

    2024年02月03日
    浏览(41)
  • unzip 解压大文件出现错误invalid zip file with overlapped components (possible zip bomb)(linux分卷解压大文件错误解决)

    先安装p7zip 再使用p7zip进行解压 7z x 001.zip(首文件) 解决 小文件用常见方法就行了 1 2 cat  c.zip.*  d.zip 解压 unzip d.zip (可能会出错)

    2024年02月16日
    浏览(53)
  • 【Java】定义一个表示学生信息的类,要求如下:(1)学生的属性包括:学号、姓名、性别、年龄和课程成绩(5门课,其中包括Java);

    题目要求:定义一个表示学生信息的类,要求如下:(1)学生的属性包括:学号、姓名、性别、年龄和课程成绩(5门课,其中包括Java);(2)创建带参数的构造方法;(3)获取学生的属性信息;(4)根据学生类,创建五个该类的对象,要求对象数组,并打印五个学生的

    2024年02月07日
    浏览(44)
  • 【Python脚本】使用Python解压zip、rar文件

    Python 本身不支持 rar 文件的解压,需要先安装相关依赖才可使用 pip3 install rarfile 安装rarfile库 (注意是解压,压缩这个方法不支持) 压缩包中存在多个文件时,可以使用for循环进行批量解压 安装 unrar 模块:pip install unrar 下载安装 unrar library,网址:http://www.rarlab.com/rar/UnRAR

    2024年02月05日
    浏览(44)
  • 服务器使用——解压常见文件tar、zip、rar等

    1.tar文件 2.zip文件 这篇关于zip博客写的挺全的,这里直接放链接。 3.rar文件 首先下载RAR 6.21 for Linux x64 下载完后安装: 加压后可以看到有一个rar.txt,里面有rar具体的使用方法。这里粘贴复制下来

    2024年02月10日
    浏览(50)
  • Python实现rar、zip和7z文件的压缩和解压

    一、7z压缩文件的压缩和解压 1、安装py7zr 我们要先安装 py7zr 第三方库: 如果python环境有问题,执行上面那一条安装语句老是安装在默认的python环境的话,我们可以执行下面这条语句,将第三方库安装在项目的虚拟环境中: 2、解压7z文件 3、压缩成7z文件 二、rar压缩文件的压

    2024年02月07日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包