/**

* 提供给用户使用的解压工具

* @param srcPath

* @param outPath

* @throws IOException*/

public static voiddecompressionFile(String srcPath, String outPath) throws IOException {//简单判断解压路径是否合法

if (!newFile(srcPath).isDirectory()) {//判断输出路径是否合法

if (newFile(outPath).isDirectory()) {if (!outPath.endsWith(File.separator)) {

outPath+=File.separator;

}//zip读取压缩文件

FileInputStream fileInputStream = newFileInputStream(srcPath);

ZipInputStream zipInputStream= newZipInputStream(fileInputStream);//解压文件

decompressionFile(outPath, zipInputStream);//关闭流

zipInputStream.close();

fileInputStream.close();

}else{throw new RuntimeException("输出路径不合法!");

}

}else{throw new RuntimeException("需要解压的文件不合法!");

}

}/**

* ZipInputStream是逐个目录进行读取,所以只需要循环

* @param outPath

* @param inputStream

* @throws IOException*/

private static voiddecompressionFile(String outPath, ZipInputStream inputStream) throws IOException {//读取一个目录

ZipEntry nextEntry =inputStream.getNextEntry();//不为空进入循环

while (nextEntry != null) {

String name=nextEntry.getName();

File file= new File(outPath+name);//如果是目录,创建目录

if (name.endsWith("/")) {

file.mkdir();

}else{//文件则写入具体的路径中

FileOutputStream fileOutputStream = newFileOutputStream(file);

BufferedOutputStream bufferedOutputStream= newBufferedOutputStream(fileOutputStream);intn;byte[] bytes = new byte[1024];while ((n = inputStream.read(bytes)) != -1) {

bufferedOutputStream.write(bytes,0, n);

}//关闭流

bufferedOutputStream.close();

fileOutputStream.close();

}//关闭当前布姆

inputStream.closeEntry();//读取下一个目录,作为循环条件

nextEntry =inputStream.getNextEntry();

}

}

java zipinputstream_Java之解压流(ZipInputStream)相关推荐

  1. 工具类:(一) java压缩与解压

    工具类:(一) java压缩与解压 本工具类采用的是java.util包下的Deflater进行压缩,以及Inflater进行解压, 适用于程序中需要通过远程接口调用发送或接收数据时: /*** 压缩 ...

  2. Java 压缩与解压zip文件

    一.压缩文件大致可以分为三种:ZIP.JAR.GZ. 压缩流 在日常中经常会使用到像WinRAR或WinZIP这样的压缩文件,通过这些软件可以把一个很大的文件进行压缩以方便传输. 在JAVA中,为了减 ...

  3. java 文件压缩 解压_Java文件压缩与解压缩(一)

    package com.cn; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream ...

  4. java zip压缩解压_JAVA实现实用的ZIP压缩与解压

    程序实现了ZIP压缩.共分为2部分 : 压缩(compression)与解压(decompression) 大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压. ...

  5. Java代码实现解压文件包和压缩文件的工具类

    最近开发任务比较多,这两天陆陆续续整理了一点资料上传一下,这个是前段时间用到的解压和压缩文件的工具类,网上找了一些,自己补充一下,现在先分享一下,希望对各位同学有所帮助! package com.as ...

  6. java zip malformed_java 解压zip java.lang.IllegalArgumentException: MALFORMED 错误

    zip压缩包在解压过程中,遇到了错误,提示如下 java.lang.IllegalArgumentException: MALFORMED at java.util.zip.ZipCoder.toSt ...

  7. java zip 高效 解压,java实现zip的压缩和解压

    [ /** * 解压缩 * @param warPath 包地址 * @param unzipPath 解压后地址 */ public static void unzip(String warPath ...

  8. 【Android 安全】DEX 加密 ( Java 工具开发 | 解压 apk 文件 | 加密生成 dex 文件 | 打包未签名 apk 文件 | 文件解压缩相关代码 )

    文章目录 一.解压 apk 文件 二.加密生成 dex 文件 三.打包未签名 apk 文件 四.完整代码示例 五.文件解压缩相关代码 六.执行结果 参考博客 : [Android 安全]DEX 加密 ...

  9. java代码实现解压文件_Java压缩/解压文件的实现代码

    用java压缩/解压文件: import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; impo ...

最新文章

  1. 计算机专业面试国王的问题,阿卜杜拉国王科技大学电气与计算机科学面试经验汇总...
  2. 物理光学 计算倏逝波/渐逝波在界面上存在的范围
  3. 数据类型及pythop运算符号
  4. openresty获取nginx请求url中的所有参数
  5. android简单小程序完整代码_10行代码实现小程序支付功能!丨实战
  6. 深入浅出讲解MSE Nacos 2.0新特性
  7. word2vec原理_word2vec论文阅读笔记
  8. Java中Lambda表达式与方法引用和构造器引用
  9. 坐飞机也能享受百兆宽带了,这个技术是怎么实现的?
  10. 在linux 创建网络会话和绑定两块网卡
  11. MySQL 字符集和校对
  12. CentOS Apache服务器配置https
  13. 未能加载文件或程序集System.EnterpriseServices
  14. 修正Linux下WPS字体库缺失
  15. 关于获得淘宝商品评论的那些事
  16. 《故事处方》丹提w摩尔 epub+mobi+azw3
  17. (每日一练c++)CC113 数独
  18. 动态规划解决0-1背包问题详解(图文并茂)
  19. Wireshark 实用篇2:Wireshark 抓包常用过滤命令
  20. 第二届“强网”拟态防御国际精英挑战赛落幕,29支国内外精英队伍未能突破拟态防御,赛宁网安靶场平台完美支撑BWM新赛制.

热门文章

  1. 算法每日练习之判断完数
  2. 生物信息学基本知识笔记
  3. LeetCode周赛191
  4. Java如何转换protobuf-net中的bcl.Decimal对象
  5. Nodejs的模块系统以及require的机制
  6. 嵌入式linux驱动开发之点亮led(驱动编程思想之初体验)
  7. (Eclipse)(STM32) STM32在Eclipse編程
  8. [Python]小甲鱼Python视频第32课(except)课后题及参考解答
  9. 【JZOJ5088】【GDOI2017第四轮模拟day2】最小边权和 排序+动态规划
  10. 实验四:汇编代码调用系统调用的工作过程