java的tgz解压工具类
前言
之前在代码上一直使用的是对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解压工具类相关推荐
- JAVA常见压缩包解压工具类(支持:zip、7z和rar)
一.pom依赖 <groupId>org.apache.commons</groupId><artifactId>commons-compress</arti ...
- java gzip 压缩解压工具类
因为觉得简单,本想抱着百度直接拿过来用的心态,结果发现网上的代码都转载自同一份,且埋了一个坑,你不仔细去梳理,很难发现. mark下需要注意的两点: 1. 编码/解码,压缩/解压缩是成对出现的 编码: ...
- 【文件压缩解压工具类-含密码】
文件压缩解压工具类-含密码 一.zip4j简介 二.zip4j工具类使用步骤 1.添加maven依赖 2.工具类代码 3.调用测试 三.结语 一.zip4j简介 zip4j功能比较强大,支持加密.解密 ...
- Java zip解压工具类
分享一个自己用的zip工具类 public class ZipUtils {public static void unZip(File srcFile, String destDirPath) thr ...
- Java_压缩与解压工具类
转载请注明出处:http://blog.csdn.net/y22222ly/article/details/52201675 zip压缩,解压 zip压缩与解压主要依靠java api的两个类: Zi ...
- Android 解压工具类
public final class AssertZipUtils {/*** 解压缩 assert中的 zip文件** @param context c* @param zipFileString ...
- 工具类:(一) java压缩与解压
工具类:(一) java压缩与解压 本工具类采用的是java.util包下的Deflater进行压缩,以及Inflater进行解压, 适用于程序中需要通过远程接口调用发送或接收数据时: /*** 压缩 ...
- 【Java】jar解压后重新打成jar,不依靠开发工具
一.背景: 参考了网上的经验和Java在dos中的语句,实现将jar包解压成文件夹修改其中配置文件,在不依靠开发工具的情况下重新打回jar包. 二.具体步骤 1.如图所示,其他的是lib ...
- C++ 项目实战:跨平台的文件与视频压缩解压工具的设计与实现
C++实战:跨平台文件与视频压缩解压工具的设计与实现 一.引言(Introduction) 1.1 项目背景与目标 1.2 技术选型:C++.FFmpeg.libarchive.libzip.Qt C ...
最新文章
- Spring Framework 5.2.5 发布,增加对 Java 14 的支持
- vue一级分类和耳机分类_【Vue+DRF生鲜电商】10.商品分类层级获取,Vue跨域请求商品分类...
- 注册.NET Framework
- 决策树 算法原理及代码
- java防止编码重复_java – 如何避免许多小类的代码重复?
- 利用tar 通过网络拷贝数据
- 寒假作业3(传说中的写软件)
- linux:云端 ubuntu下挂载数据盘
- 我国出生率跌破1%,有什么影响?
- 数据库系统原理与应用教程(042)—— MySQL 查询(四):使用通配符构造查询条件
- 车辆调度系统php,GitHub - Teamo1001/VehicleSYS: 一个基于Laravel框架的车辆调度、定位、管理系统,服务端...
- 【黄啊码】thinkphp sql wherein的排序问题|tp不能按whereIn排序?
- ApacheCon Asia 2022 开启报名:Pulsar 技术议题重磅亮相
- 马来西亚理科大学计算机专业雅思,【马来西亚理科大学本科雅思成绩要求】 - 马来西亚留学联盟...
- driver 的功能是什么
- 田野调查手记·浮山摩崖石刻(六)
- 使用qqbot,群发好友消息以及打广告
- 新Macbook入手后必安装的好用的软件
- Java基础知识(建议收藏)
- linux CentOS 7 在线安装 zabbix 官网的思路,最简洁