java解压zip压缩包

news/2024/10/25 8:16:30/

坐在旁边的小伙伴问我怎么用 java 将服务器上的压缩文件解压出来,我索性给他写了个 demo ,也顺手记录一下。亲测可用,如果觉得有帮助,欢迎点赞,评论,收藏,转发

java 实现解压 zip 压缩包

package com.yuhuofei.utils;import java.io.*;
import java.nio.charset.Charset;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;/*** @Description* @ClassName UnzipUtils* @Author yuhuofei* @Date 2022/8/10 21:03* @Version 1.0*/
public class UnzipUtils {/*** 解压zip压缩文件到指定目录** @param zipPath zip压缩文件绝对路径* @param descDir 指定的解压目录*/public static void unzipFile(String zipPath, String descDir) throws IOException {try {File zipFile = new File(zipPath);if (!zipFile.exists()) {throw new IOException("要解压的压缩文件不存在");}File pathFile = new File(descDir);if (!pathFile.exists()) {pathFile.mkdirs();}InputStream input = new FileInputStream(zipPath);unzipWithStream(input, descDir);} catch (Exception e) {throw new IOException(e);}}/*** 解压** @param inputStream* @param descDir*/public static void unzipWithStream(InputStream inputStream, String descDir) {if (!descDir.endsWith(File.separator)) {descDir = descDir + File.separator;}try (ZipInputStream zipInputStream = new ZipInputStream(inputStream, Charset.forName("GBK"))) {ZipEntry zipEntry;while ((zipEntry = zipInputStream.getNextEntry()) != null) {String zipEntryNameStr = zipEntry.getName();String zipEntryName = zipEntryNameStr;if (zipEntryNameStr.contains("/")) {String str1 = zipEntryNameStr.substring(0, zipEntryNameStr.indexOf("/"));zipEntryName = zipEntryNameStr.substring(str1.length() + 1);}String outPath = (descDir + zipEntryName).replace("\\\\", "/");File outFile = new File(outPath.substring(0, outPath.lastIndexOf('/')));if (!outFile.exists()) {outFile.mkdirs();}if (new File(outPath).isDirectory()) {continue;}writeFile(outPath, zipInputStream);zipInputStream.closeEntry();}System.out.println("======解压成功=======");} catch (IOException e) {System.out.println("压缩包处理异常,异常信息{}" + e);}}//将流写到文件中public static void writeFile(String filePath, ZipInputStream zipInputStream) {try (OutputStream outputStream = new FileOutputStream(filePath)) {byte[] bytes = new byte[4096];int len;while ((len = zipInputStream.read(bytes)) != -1) {outputStream.write(bytes, 0, len);}} catch (IOException ex) {System.out.println("解压文件时,写出到文件出错");}}//测试方法public static void main(String[] args) throws IOException {String zipPath = "D:/test/测试文件.zip";String descDir = "D:/test/解压/";unzipFile(zipPath, descDir);}
}

结果如下

在这里插入图片描述


http://www.ppmy.cn/news/319206.html

相关文章

linux 解压7z的压缩包,解压多个拆分的压缩包

需求: 在Linux下解压7z压缩的压缩包该压缩包可以是由一个文件压缩生成的单个压缩包(case a);也可以是由一个文件拆分打包生成的多个子压缩包(case b) 工具准备: sudo apt install p7zip-full命令: 需求a: 压缩包只有一个&#…

windows11 解压工具 7-zip

7-zip怎么用来解压 https://zhidao.baidu.com/question/927535174296525139.html 7-zip下载 https://jingyan.baidu.com/article/64d05a0262ee139f55f73b97.html 7-zip官网 7-Zip

7z解压软件(小巧好用)。百度云下载链接

今天想再安装这个程序的时候发现下载不了了。 还是挂了梯子下载的。。。(无语)。 特此分享百度云下载链接。 7z官网 7z官方中文网 个人百度云分享 提取码:wewe

【我下载好主题的压缩包以后要怎么弄下去】

问:我下载滑头鬼之孙win7电脑桌面主题后,有个压缩的文件,我就不知道怎么弄下去了谁能告诉我下载了电脑桌面主题之后怎么办啊? 答:解压后会有个*.Theme文件,*.Theme文件在放在我的文档里,“桌面-属性-主题”标签-有个下…

WinRAR的 安装与下载

WinRAR 安装与下载 一、简介 WinRAR 是一个强大的压缩文件管理工具。它能备份你的数据,减少你的 E-mail 附件的大小,解压缩从 Internet 上下载的 RAR、ZIP 和其他格式的压缩文件,并能创建 RAR 和 ZIP 格式的压缩文件。 二、下载 WinRAR下载…

文件下载、解压zip文件、移动文件夹、删除文件

由于IO流不熟悉带来的灾难,导致用的时候不知道用哪个流,必须记一下 1、文件下载 /**** param downloadPath 下载地址* param fileName 保存文件名* param savePath 保存路径* return*/private void download(String downloadPath,String fileName,Stri…

好压 自解压文件解压完成后创建桌面快捷方式并启动

首先右键点击想要压缩的目标文件夹,右键点击“添加到压缩文件”,在弹出的窗口中选择7z格式,然后勾选创建自解压格式,然后点击自解压选项。 进入自解压选项后,点击解压标签,在解压后运行那一栏输入运行路径&…

Android压缩包下载解压

使用说明:在需要处理大文件下载,为了节省流量就在后台做成了压缩包,app端联网下载到本地解压使用; 使用步骤: 1 联网下载 在下使用的是okGo,此框架比Retrufit还简单,为什么不用呢。 okGo下载文…