添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
彷徨的机器人  ·  stringvar转变成str ...·  2 周前    · 
留胡子的汤圆  ·  SharePoint 搜索 REST ...·  1 周前    · 
没有腹肌的开水瓶  ·  Exception in thread ...·  1 周前    · 
酒量小的葡萄酒  ·  Windows Setup ...·  10 月前    · 
奔放的钢笔  ·  render 函数基础 | ...·  1 年前    · 
稳重的豆腐  ·  奋进新征程 ...·  1 年前    · 
挂过科的板栗  ·  python - SQLAlchemy ...·  1 年前    · 
import java.nio.charset.Charset; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; * 孟智超 * 2022/12/8 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/电子证书 (6).zip";
        String descDir = "D:/test/jy/";
        unzipFile(zipPath, descDir);


D:/test/电子证书 (6).zip 压缩文件解压到 D:/test/jy/ 文件夹下。

a2ab0a34368c4581a2d2dc2f62db38e0.png

f7ec5405739345d982e0157d26965fa2.png


运行后

e9718203b507431ca2b734c05228f8fb.png


53e9f39e9f7b493ca8845c6e67d79dfa.png

Java操作文件的日常总结(文件压缩,文件解压,递归删除文件,文件的下载保存)
文件的读写是日常开发中经常碰到的需求,熟练掌握文件的读写是每个Java开发者的基本功。本文将主要介绍常见的文件读写操作。 之前写过一篇Java IO的文章 Java IO基础(同步阻塞IO)。
Java哈夫曼编码实现压缩与解压
哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。
1078 字符串压缩与解压(JAVA)
文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如 ccccc 就用 5c 来表示。如果字符没有重复,就原样输出。例如 aba 压缩后仍然是 aba。
【Android 安全】DEX 加密 ( Java 工具开发 | 解压 apk 文件 | 加密生成 dex 文件 | 打包未签名 apk 文件 | 文件解压缩相关代码 )(一)
【Android 安全】DEX 加密 ( Java 工具开发 | 解压 apk 文件 | 加密生成 dex 文件 | 打包未签名 apk 文件 | 文件解压缩相关代码 )(一)
【Android 安全】DEX 加密 ( Java 工具开发 | 解压 apk 文件 | 加密生成 dex 文件 | 打包未签名 apk 文件 | 文件解压缩相关代码 )(一)
【Android 安全】DEX 加密 ( Java 工具开发 | 解压 apk 文件 | 加密生成 dex 文件 | 打包未签名 apk 文件 | 文件解压缩相关代码 )(一)
【Android 安全】DEX 加密 ( Java 工具开发 | 加密解密算法 API | 编译代理 Application 依赖库 | 解压依赖库 aar 文件 )(二)
【Android 安全】DEX 加密 ( Java 工具开发 | 加密解密算法 API | 编译代理 Application 依赖库 | 解压依赖库 aar 文件 )(二)