iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java 文件压缩zip【两种方式】
  • 933
分享到

java 文件压缩zip【两种方式】

java开发语言springbootidea 2023-08-31 11:08:47 933人浏览 薄情痞子
摘要

 一、普通方式 package com.hebta.source.code.util;import java.io.*;import java.util.zip.ZipEntry;import java.util.zip.ZipOutput

 一、普通方式

package com.hebta.source.code.util;import java.io.*;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;public class ZipUtils {        public String createZip(String[] files) {        String zipFileName = "zipName.zip";        // zipName为上一步文件打包zip时传入的zipName        File zipFile = new File("/woke/file/" + zipFileName);        if (!zipFile.getParentFile().exists()) {            zipFile.getParentFile().mkdirs();        }        if (!zipFile.exists()) {            try {                zipFile.createNewFile();            } catch (IOException e) {                e.printStackTrace();            }        }        zip(files, zipFile);        return zipFileName;    }        public void zip(String[] files, File zipFile) {        FileInputStream fileInputStream = null;        FileOutputStream fileOutputStream = null;        ZipOutputStream zipOutputStream = null;        BufferedInputStream bufferInputStream = null;        try {            // zipFileName为压缩文件的名称(xx.zip),首先在某个目录下(C:/temp/路径可以根据自己的需求进行修改)创建一个.zip结尾的文件            fileOutputStream = new FileOutputStream(zipFile);            zipOutputStream = new ZipOutputStream(new BufferedOutputStream(fileOutputStream));            // 创建读写缓冲区            byte[] bufs = new byte[1024 * 10];            for (String file : files) {                File voiceFile = new File(file);                if (voiceFile.exists()) {                    ZipEntry zipEntry;                    // 压缩文件下的目录分级,如果不分目录可以直接用fileName.文件后缀                    zipEntry = new ZipEntry("path/folderName/fileName." + getFileExtension(voiceFile));                    // 创建ZIP实体,并添加进压缩包                    zipOutputStream.putNextEntry(zipEntry);                    // 读取待压缩的文件并写进压缩包里                    fileInputStream = new FileInputStream(voiceFile);                    bufferInputStream = new BufferedInputStream(fileInputStream, 1024 * 10);                    int read = 0;                    while ((read = bufferInputStream.read(bufs, 0, 1024 * 10)) != -1) {                        zipOutputStream.write(bufs, 0, read);                    }                }            }        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if (bufferInputStream != null) {                    bufferInputStream.close();                }                if (zipOutputStream != null) {                    zipOutputStream.close();                }            } catch (IOException e) {                e.printStackTrace();            }        }    }        private static String getFileExtension(File file) {        String fileName = file.getName();        if (fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0)            return fileName.substring(fileName.lastIndexOf(".") + 1);        else return " ";    }}

二、使用zip4j方式

引入jar

                    net.lingala.zip4j            zip4j            2.8.0        

 代码块:

package com.hebta.source.code.util;import lombok.extern.slf4j.Slf4j;import net.lingala.zip4j.ZipFile;import net.lingala.zip4j.exception.ZipException;import net.lingala.zip4j.model.ZipParameters;import net.lingala.zip4j.model.enums.AesKeyStrength;import net.lingala.zip4j.model.enums.EncryptionMethod;import java.io.File;import java.util.ArrayList;import java.util.List;@Slf4jpublic class ZipUtils {        public static void createZip(List files, String zipName, String pwd) {        ZipParameters zipParameters = new ZipParameters();        zipParameters.setEncryptFiles(true);        zipParameters.setEncryptionMethod(EncryptionMethod.AES);        // Below line is optional. AES 256 is used by default. You can override it to use AES 128. AES 192 is supported only for extracting.        zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);        List filesToAdd = new ArrayList<>();        for (String file : files) {            filesToAdd.add(new File(file));        }//        将文件夹添加到压缩文件//        new ZipFile("filename.zip").addFolder(new File("/users/some_user/folder_to_add"));        ZipFile zipFile = new ZipFile(zipName, pwd.toCharArray());        try {            zipFile.addFiles(filesToAdd, zipParameters);        } catch (ZipException e) {            log.info("生成zip失败:" + e.getMessage());            e.printStackTrace();        }    }        public static void zipFileWithPwd(String inputFile,String outputFile, String pwd) {        // 生成的压缩文件        try {            ZipFile zipFile = new ZipFile(outputFile, pwd.toCharArray());            ZipParameters zipParameters = new ZipParameters();            zipParameters.setEncryptFiles(true);            zipParameters.setEncryptionMethod(EncryptionMethod.AES);            zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);            // 要打包的文件夹            File currentFile = new File(inputFile);            File[] fs = currentFile.listFiles();            // 遍历test文件夹下所有的文件、文件夹            for (File f : fs) {                if (f.isDirectory()) {                    zipFile.addFolder(f, zipParameters);                } else {                    zipFile.addFile(f, zipParameters);                }            }        } catch (ZipException e) {            e.printStackTrace();        }    }}

来源地址:https://blog.csdn.net/clz979991314/article/details/127849372

--结束END--

本文标题: java 文件压缩zip【两种方式】

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

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

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

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

下载Word文档
猜你喜欢
  • 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
  • Java压缩与解压缩ZIP文件
    文章目录 前言Java解压缩文件压缩和解压缩ZIP文件检验应用总结 前言 在现代计算机上,数据传输和存储越来越依赖于文件压缩技术。当我们需要发送大量数据时,压缩文件可以大大减少传输时间...
    99+
    2023-09-11
    java zip 压缩文件 解压缩文件 ZipOutputStream
  • Java实现文件压缩为zip和解压zip压缩包
    目录压缩成.zip解压.zip压缩成.zip 代码如下: public static void toZip(String srcDir, OutputStream out) th...
    99+
    2022-11-13
  • Java如何实现文件压缩为zip和解压zip压缩包
    本篇内容介绍了“Java如何实现文件压缩为zip和解压zip压缩包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!压缩成.zip代码如下:pu...
    99+
    2023-07-02
  • Python压缩解压缩zip文件及破解zip文件密码的方法
    python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。 例如,在py脚本所在目录中,有如下文件: readability/readability.js readability...
    99+
    2022-06-04
    文件 解压缩 密码
  • Java的zip文件压缩与解压:ZipInputStream,ZipOutputStream
    目录 文件压缩 ZipOutputStream文件解压:ZipInputStream 文件压缩 ZipOutputStream    用ZipOutputStream来压缩一个文件夹时,要搭配ZipEntry来使用。ZipEnt...
    99+
    2023-08-16
    java ZipInputStream ZipOutputStream zip
  • java工具类 - 实现文件压缩zip及解压缩
    对hutool工具类进行的封装 依赖 cn.hutool hutool-all 5.8.15 ...
    99+
    2023-10-28
    java
  • Android实现zip文件压缩及解压缩的方法
    本文实例讲述了Android实现zip文件压缩及解压缩的方法。分享给大家供大家参考。具体如下: DirTraversal.java如下: package com.once; ...
    99+
    2022-06-06
    压缩 方法 zip 解压 Android
  • 【Java 基础篇】Java Zip压缩:简化文件和文件夹的压缩操作
    文章目录 导言一、Zip压缩简介二、压缩文件1. 创建压缩文件2. 压缩多个文件3. 压缩文件夹 三、解压缩文件1、解压缩文件 总结 导言 在Java开发中,经常会遇到需要对文件和文件夹进行压缩和解压缩的需求。J...
    99+
    2023-08-17
    java python php
  • windows怎么压缩文件成zip格式
    这篇文章主要讲解了“windows怎么压缩文件成zip格式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“windows怎么压缩文件成zip格式”吧!压缩文件成zip格式的方法:首先右键点击想...
    99+
    2023-07-02
  • C#压缩或解压rar、zip文件方法实例
    前言 为了便于文件在网络中的传输和保存,通常将文件进行压缩操作,常用的压缩格式有rar、zip和7z,本文将介绍在C#中如何对这几种类型的文件进行压缩和解压,并提供一些在C#中解压缩...
    99+
    2022-11-12
  • 里有Java如何实现压缩与解压zip文件
    里有Java如何实现压缩与解压zip文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java解压缩zip - 多个文件(包括文件夹),对多个文件和文件夹进行压...
    99+
    2023-05-31
    java ava zip
  • VBScript如何压缩单个文件为zip格式
    这篇文章给大家分享的是有关VBScript如何压缩单个文件为zip格式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下:On Error Resume Next Dim fso,fp,oApp,target...
    99+
    2023-06-08
  • Java实现创建Zip压缩包并写入文件
    前言 工作中需要把一些数据放到一个zip的压缩包中,可以使用 ZipOutputStream。ZipOutputStream可以将内容直接写入到zip包中。一般创建ZipOutput...
    99+
    2022-11-12
  • Java实现把文件压缩成zip文件的示例代码
    实现代码 ackage org.fh.util; import java.io.File; import java.io.FileInputStream; import java....
    99+
    2022-11-13
  • Java实现把文件压缩成zip文件的代码怎么写
    本篇内容主要讲解“Java实现把文件压缩成zip文件的代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java实现把文件压缩成zip文件的代码怎么写”吧!实现代码ackage ...
    99+
    2023-06-29
  • Java解压RAR文件的几种方式
    第一种: public class fileZipUtil {public static void unZipFiles(String inputFile,String destDirPath) throws Exception {File...
    99+
    2023-09-04
    java 开发语言
  • 在Linux上压缩文件zip命令的各种变体有哪些
    这篇文章主要介绍在Linux上压缩文件zip命令的各种变体有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!基本的 zip 命令首先,让我们看一下基本的 zip 命令。它使用了与 gzip 基本上相同的压缩算法,但...
    99+
    2023-06-16
  • Java实现解析zip压缩包并获取文件内容
    目录功能描述相关源码调用说明测试效果功能描述 页面上传一个源码压缩包,后端将压缩包解压,并获取每个文件中的内容。 相关源码 (1)首先定义一个与解压文件对应的实体类。 package...
    99+
    2022-11-13
  • Java怎么实现创建Zip压缩包并写入文件
    Java怎么实现创建Zip压缩包并写入文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作