前言
之前在代码上一直使用的是对zip的解压,最近对接方居然使用了tgz的压缩包,在网上找了一个工具类,在项目测试,使用。
直接贴上tgz解压代码。

public class PackDecompressor {public static int BUFFER_SIZE = 2048;public static void main(String[] args) throws Exception {unTarGZ("D:\\test\\payresult_fix_20190318.txt.tgz", "D:\\test\\aaa");}public static void unTarGZ(String file, String destDir) throws Exception {File tarFile = new File(file);unTarGZ(tarFile, destDir);}public static void unTarGZ(File tarFile, String destDir) throws Exception {if (StringUtils.isBlank(destDir)) {destDir = tarFile.getParent();}destDir = destDir.endsWith(File.separator) ? destDir : destDir + File.separator;unTar(new GzipCompressorInputStream(new FileInputStream(tarFile)), destDir);}private static void unTar(InputStream inputStream, String destDir) throws Exception {TarArchiveInputStream tarIn = new TarArchiveInputStream(inputStream, BUFFER_SIZE);TarArchiveEntry entry = null;try {while ((entry = tarIn.getNextTarEntry()) != null) {if (entry.isDirectory()) {//是目录createDirectory(destDir, entry.getName());//创建空目录} else {//是文件File tmpFile = new File(destDir + File.separator + entry.getName());createDirectory(tmpFile.getParent() + File.separator, null);//创建输出目录OutputStream out = null;try {out = new FileOutputStream(tmpFile);int length = 0;byte[] b = new byte[2048];while ((length = tarIn.read(b)) != -1) {out.write(b, 0, length);}} finally {IOUtils.closeQuietly(out);}}}} catch (Exception e) {e.printStackTrace();throw e;} finally {IOUtils.closeQuietly(tarIn);}}public static void createDirectory(String outputDir, String subDir) {File file = new File(outputDir);if (!(subDir == null || subDir.trim().equals(""))) {//子目录不为空file = new File(outputDir + File.separator + subDir);}if (!file.exists()) {file.mkdirs();}}
}

java的tgz解压工具类相关推荐

  1. JAVA常见压缩包解压工具类(支持:zip、7z和rar)

    一.pom依赖 <groupId>org.apache.commons</groupId><artifactId>commons-compress</arti ...

  2. java gzip 压缩解压工具类

    因为觉得简单,本想抱着百度直接拿过来用的心态,结果发现网上的代码都转载自同一份,且埋了一个坑,你不仔细去梳理,很难发现. mark下需要注意的两点: 1. 编码/解码,压缩/解压缩是成对出现的 编码: ...

  3. 【文件压缩解压工具类-含密码】

    文件压缩解压工具类-含密码 一.zip4j简介 二.zip4j工具类使用步骤 1.添加maven依赖 2.工具类代码 3.调用测试 三.结语 一.zip4j简介 zip4j功能比较强大,支持加密.解密 ...

  4. Java zip解压工具类

    分享一个自己用的zip工具类 public class ZipUtils {public static void unZip(File srcFile, String destDirPath) thr ...

  5. Java_压缩与解压工具类

    转载请注明出处:http://blog.csdn.net/y22222ly/article/details/52201675 zip压缩,解压 zip压缩与解压主要依靠java api的两个类: Zi ...

  6. Android 解压工具类

    public final class AssertZipUtils {/*** 解压缩 assert中的 zip文件** @param context c* @param zipFileString ...

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

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

  8. 【Java】jar解压后重新打成jar,不依靠开发工具

    一.背景:        参考了网上的经验和Java在dos中的语句,实现将jar包解压成文件夹修改其中配置文件,在不依靠开发工具的情况下重新打回jar包. 二.具体步骤 1.如图所示,其他的是lib ...

  9. C++ 项目实战:跨平台的文件与视频压缩解压工具的设计与实现

    C++实战:跨平台文件与视频压缩解压工具的设计与实现 一.引言(Introduction) 1.1 项目背景与目标 1.2 技术选型:C++.FFmpeg.libarchive.libzip.Qt C ...

最新文章

  1. Spring Framework 5.2.5 发布,增加对 Java 14 的支持
  2. vue一级分类和耳机分类_【Vue+DRF生鲜电商】10.商品分类层级获取,Vue跨域请求商品分类...
  3. 注册.NET Framework
  4. 决策树 算法原理及代码
  5. java防止编码重复_java – 如何避免许多小类的代码重复?
  6. 利用tar 通过网络拷贝数据
  7. 寒假作业3(传说中的写软件)
  8. linux:云端 ubuntu下挂载数据盘
  9. 我国出生率跌破1%,有什么影响?
  10. 数据库系统原理与应用教程(042)—— MySQL 查询(四):使用通配符构造查询条件
  11. 车辆调度系统php,GitHub - Teamo1001/VehicleSYS: 一个基于Laravel框架的车辆调度、定位、管理系统,服务端...
  12. 【黄啊码】thinkphp sql wherein的排序问题|tp不能按whereIn排序?
  13. ApacheCon Asia 2022 开启报名:Pulsar 技术议题重磅亮相
  14. 马来西亚理科大学计算机专业雅思,【马来西亚理科大学本科雅思成绩要求】 - 马来西亚留学联盟...
  15. driver 的功能是什么
  16. 田野调查手记·浮山摩崖石刻(六)
  17. 使用qqbot,群发好友消息以及打广告
  18. 新Macbook入手后必安装的好用的软件
  19. Java基础知识(建议收藏)
  20. linux CentOS 7 在线安装 zabbix 官网的思路,最简洁

热门文章

  1. Chrome提示由贵单位管理该怎么取消?
  2. 微信小程序自定义组件示例
  3. 机器学习(四)朴素贝叶斯
  4. 【销售易】怎么得到被修改的客户列表
  5. JBI标准和ESB的相互关系
  6. 这6个css隐藏内容的方法,用过没?
  7. 蒲公英服务器搭建小程序,wx小程序—— 小程序页面通用模板的使用
  8. (fpga)用verilog写积分函数
  9. 周杰伦根本不需要流量!!!
  10. python矩阵乘法算法_Python算法|矩阵链乘法