iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java工具类 - 实现文件压缩zip及解压缩
  • 328
分享到

java工具类 - 实现文件压缩zip及解压缩

java 2023-10-28 07:10:12 328人浏览 泡泡鱼
摘要

对hutool工具类进行的封装 依赖 cn.hutool hutool-all 5.8.15

对hutool工具类进行的封装

依赖

                    cn.hutool            hutool-all            5.8.15            compile        

压缩代码

package com.myrc.WEB.util;import cn.hutool.core.collection.CollUtil;import cn.hutool.core.util.ZipUtil;import lombok.extern.slf4j.Slf4j;import javax.activation.MimetypesFileTypeMap;import javax.servlet.Http.httpservletResponse;import java.io.*;import java.net.URLEncoder;import java.util.List;@Slf4j@SuppressWarnings("all")public class ZipFileUtils {        public static void generateZip(File targetZipFile, List sourceFiles, boolean dirWithFlag) {        if (CollUtil.isNotEmpty(sourceFiles)) {            File[] fileArr = sourceFiles.toArray(new File[]{});            ZipUtil.zip(targetZipFile, dirWithFlag, fileArr);        }    }        public static void downloadZip(File file, HttpServletResponse response) {        OutputStream toClient = null;        try {            // 以流的形式下载文件。            BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file.getPath()));            byte[] buffer = new byte[fis.available()];            fis.read(buffer);            fis.close();            // 清空response            response.reset();            toClient = new BufferedOutputStream(response.getOutputStream());            response.setCharacterEncoding("UTF-8");            response.setContentType("application/octet-stream");            response.setHeader("Content-Disposition", "attachment;filename=" + file.getName());            toClient.write(buffer);            toClient.flush();        } catch (Exception e) {            log.error("下载zip压缩包过程发生异常:", e);        } finally {            if (toClient != null) {                try {                    toClient.close();                } catch (IOException e) {                    log.error("zip包下载关流失败:", e);                }            }            //删除改临时zip包(此zip包任何时候都不需要保留,因为源文件随时可以再次进行压缩生成zip包)            file.delete();        }    }        public static void downloadAnyFile(File file, HttpServletResponse response) {        FileInputStream fileInputStream = null;        OutputStream outputStream = null;        try {            fileInputStream = new FileInputStream(file);            // 清空response            response.reset();            //防止文件名中文乱码            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(file.getName(),"UTF-8"));            //根据文件动态setContentType            response.setContentType(new MimetypesFileTypeMap().getContentType(file) + ";charset=UTF-8");            outputStream = response.getOutputStream();            byte[] bytes = new byte[2048];            int len;            while ((len = fileInputStream.read(bytes)) > 0) {                outputStream.write(bytes, 0, len);            }        } catch (Exception e) {            e.printStackTrace();        } finally {            if (outputStream != null) {                try {                    outputStream.close();                } catch (IOException e1) {                    e1.printStackTrace();                }            }            if (fileInputStream != null) {                try {                    fileInputStream.close();                } catch (IOException e1) {                    e1.printStackTrace();                }            }        }    }}

FileUtil 工具类补齐

public class FileUtil {      public static List getAllFile(String dirFilePath) {        if (StrUtil.isBlank(dirFilePath))            return null;        return getAllFile(new File(dirFilePath));    }        public static List getAllFile(File dirFile) {        // 如果文件夹不存在或着不是文件夹,则返回 null        if (Objects.isNull(dirFile) || !dirFile.exists() || dirFile.isFile())            return null;        File[] childrenFiles = dirFile.listFiles();        if (Objects.isNull(childrenFiles) || childrenFiles.length == 0)            return null;        List files = new ArrayList<>();        for (File childFile : childrenFiles) {            // 如果是文件,直接添加到结果集合            if (childFile.isFile()) {                files.add(childFile);            }            //以下几行代码取消注释后可以将所有子文件夹里的文件也获取到列表里//            else {//                // 如果是文件夹,则将其内部文件添加进结果集合//                List cFiles = getAllFile(childFile);//                if (Objects.isNull(cFiles) || cFiles.isEmpty()) continue;//                files.addAll(cFiles);//            }        }        return files;    }}    
解压缩

zipUtil是hutool包下的工具类

File unzip = ZipUtil.unzip(zipPath, StandardCharsets.UTF_8); 

使用:

//获取该目录下全部的文件List allFile = FileUtil.getAllFile(configPath);//对目标文件集 压缩ZipFileUtils.generateZip(new File(zipPath),allFile,true);

来源地址:https://blog.csdn.net/qq_43473129/article/details/129119088

--结束END--

本文标题: java工具类 - 实现文件压缩zip及解压缩

本文链接: https://www.lsjlt.com/news/515975.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java工具类 - 实现文件压缩zip及解压缩
    对hutool工具类进行的封装 依赖 cn.hutool hutool-all 5.8.15 ...
    99+
    2023-10-28
    java
  • Java实现文件压缩为zip和解压zip压缩包
    目录压缩成.zip解压.zip压缩成.zip 代码如下: public static void toZip(String srcDir, OutputStream out) th...
    99+
    2024-04-02
  • Java压缩与解压缩ZIP文件
    文章目录 前言Java解压缩文件压缩和解压缩ZIP文件检验应用总结 前言 在现代计算机上,数据传输和存储越来越依赖于文件压缩技术。当我们需要发送大量数据时,压缩文件可以大大减少传输时间...
    99+
    2023-09-11
    java zip 压缩文件 解压缩文件 ZipOutputStream
  • Java如何实现文件压缩为zip和解压zip压缩包
    本篇内容介绍了“Java如何实现文件压缩为zip和解压zip压缩包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!压缩成.zip代码如下:pu...
    99+
    2023-07-02
  • 利用Java实现zip压缩/解压缩 (转)
    利用Java实现zip压缩/解压缩 (转)[@more@]利用Java实现zip压缩/解压缩---摘自互联网  由于网络带宽有限,所以数据文件的压缩有利于数据在Inte.NET上的快速传输,同时也节 省服务器的外存空间。   Java 1....
    99+
    2023-06-03
  • python zip压缩及解压
    zipfile模块简介zipfile模块()用于压缩文件成zip及解压zip文件,模块介绍如下。·zipfile.ZipFile(file,mode)openaZIPfile,wherefilecanbeeitherapathto...
    99+
    2023-01-31
    python zip
  • 如何利用Java实现zip压缩解压缩
    小编给大家分享一下如何利用Java实现zip压缩解压缩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  zip压缩文件结构:一个zip文件由多个entry组成,每...
    99+
    2023-06-03
  • 里有Java如何实现压缩与解压zip文件
    里有Java如何实现压缩与解压zip文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java解压缩zip - 多个文件(包括文件夹),对多个文件和文件夹进行压...
    99+
    2023-05-31
    java ava zip
  • Java如何实现ZIP压缩与解压
    Java如何实现ZIP压缩与解压,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。程序实现了ZIP压缩。共分为2部分 : 压缩(compression)与解压(de...
    99+
    2023-06-17
  • Java的zip文件压缩与解压:ZipInputStream,ZipOutputStream
    目录 文件压缩 ZipOutputStream文件解压:ZipInputStream 文件压缩 ZipOutputStream    用ZipOutputStream来压缩一个文件夹时,要搭配ZipEntry来使用。ZipEnt...
    99+
    2023-08-16
    java ZipInputStream ZipOutputStream zip
  • 3.7Python之解压缩ZIP文件
      zip文件格式是通用的文档压缩标准。自1.6版本起,Python中zipfile模块能够直接处理zip文件里的数据,例如需要将对应目录或多个文件打包或压缩成zip格式,或者需要查看一个zip格式的归档文件中部分或者所有文件同...
    99+
    2023-01-31
    解压缩 文件 Python
  • go怎么压缩和解压zip文件
    本篇内容主要讲解“go怎么压缩和解压zip文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go怎么压缩和解压zip文件”吧!压缩zipfunc Zip(dest strin...
    99+
    2023-07-02
  • 如何在Java中利用zip实现压缩和解压缩
    这篇文章主要介绍了如何在Java中利用zip实现压缩和解压缩,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和...
    99+
    2023-06-06
  • Node.js中zip压缩和zip解压缩实例用法
    本篇内容主要讲解“Node.js中zip压缩和zip解压缩实例用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中zip压缩和zip解压缩实例用法...
    99+
    2024-04-02
  • Python实现rar、zip和7z文件的压缩和解压
    一、7z压缩文件的压缩和解压 1、安装py7zr 我们要先安装py7zr第三方库: pip install py7zr 如果python环境有问题,执行上面那一条安装语句老是安装在默认的python环...
    99+
    2023-09-20
    python
  • go压缩解压zip文件源码示例
    目录压缩zip解压zip压缩zip func Zip(dest string, paths ...string) error { zfile, err := os.Creat...
    99+
    2024-04-02
  • Win10如何使用自带压缩、解压zip压缩文件功能
      Windows系统自带不少工具,到了Win10,好用的功能依然保留,比如压缩/解压zip压缩文件的功能。压缩文件能为系统节省空间,这一功能必不可少。Win10如何使用压缩/解压zip压缩文件功能?   Win10压缩...
    99+
    2023-06-10
    Win10 压缩 功能 自带 压缩文件
  • 怎么在Linux中压缩及解压缩文件
    这篇文章主要讲解了“怎么在Linux中压缩及解压缩文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux中压缩及解压缩文件”吧!对文件进行压缩,可以通过使用较少的字节对文件中的数...
    99+
    2023-06-16
  • C#压缩或解压rar、zip文件方法实例
    前言 为了便于文件在网络中的传输和保存,通常将文件进行压缩操作,常用的压缩格式有rar、zip和7z,本文将介绍在C#中如何对这几种类型的文件进行压缩和解压,并提供一些在C#中解压缩...
    99+
    2024-04-02
  • java 文件压缩zip【两种方式】
     一、普通方式 package com.hebta.source.code.util;import java.io.*;import java.util.zip.ZipEntry;import java.util.zip.ZipOutput...
    99+
    2023-08-31
    java 开发语言 spring boot idea
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作