java 压缩 tar_Java将文本文件压缩为tar.gz
/*** @功能描述 压缩tar.gz 文件
*@paramresourceList 源文件集合
*@paramoutPath 目标文件
*@return返回压缩结果
*@throwsException*/@PrintRunTime(function="压缩tar.gz文件")public static void packet(List resourceList, String outPath) throwsException {//1. 参数验证, 初始化输出路径
if(resourceList == null || resourceList.size() < 1 || !Verify.isEmpty(outPath)){throw new ServiceException("文件压缩执行异常, 非法参数!");
}long startTime =System.currentTimeMillis();//2. 迭代源文件集合, 将文件打包为Tar
try (FileOutputStream fileOutputStream = new FileOutputStream(outPath+".tmp");
BufferedOutputStream bufferedOutput= newBufferedOutputStream(fileOutputStream);
TarOutputStream tarOutputStream= newTarOutputStream(bufferedOutput);) {for(File resourceFile : resourceList) {if(!resourceFile.isFile()){continue;
}try(FileInputStream fileInputStream = newFileInputStream(resourceFile);
BufferedInputStream bufferedInput= newBufferedInputStream(fileInputStream);){
TarEntry entry= new TarEntry(newFile(resourceFile.getName()));
entry.setSize(resourceFile.length());
tarOutputStream.putNextEntry(entry);
IOUtils.copy(bufferedInput, tarOutputStream);
}catch(Exception e) {throw new ServiceException("文件["+resourceFile+"]压缩执行异常, 嵌套异常: \n" +e.toString());
}finally{
tarOutputStream.closeEntry();
}
}
}catch(Exception e) {
Files.delete(Paths.get(outPath+".tmp"));throw new ServiceException("文件压缩至["+outPath+"]执行异常, 嵌套异常: \n" +e.toString());
}//3. 读取打包好的Tar临时文件文件, 使用GZIP方式压缩
try (FileInputStream fileInputStream = new FileInputStream(outPath+".tmp");
BufferedInputStream bufferedInput= newBufferedInputStream(fileInputStream);
FileOutputStream fileOutputStream= newFileOutputStream(outPath);
GZIPOutputStream gzipOutputStream= newGZIPOutputStream(fileOutputStream);
BufferedOutputStream bufferedOutput= newBufferedOutputStream(gzipOutputStream);
) {byte[] cache = new byte[1024];for (int index = bufferedInput.read(cache); index != -1; index =bufferedInput.read(cache)) {
bufferedOutput.write(cache,0,index);
}long endTime =System.currentTimeMillis();
Log.info("文件["+outPath+"]压缩执行完毕, 耗时:" + (endTime - startTime) + "ms");
}catch(Exception e) {throw new ServiceException("文件压缩至["+outPath+"]执行异常, 嵌套异常: \n" +e.toString());
}finally{
Files.delete(Paths.get(outPath+".tmp"));
}
}
java 压缩 tar_Java将文本文件压缩为tar.gz相关推荐
- 压缩,解压文件|*.tar.gz/.tar.bz2 文件
参考 Tar选项: c – 创建压缩文件 x – 解压文件 v – 显示进度 f – 文件名 t – 查看压缩文件内容 j – 通过bzip2归档 z –通过gzip归档 r – 在压缩文件中追加文件 ...
- 2020-10-21 ubuntu 打包解包压缩解压tar gz bz2 tar.Z tgz rar lha格式
ubuntu 打包解包压缩解压tar gz bz2 tar.Z tgz rar lha格式 一.tar 格式 解包:tar xvf FileName.tar 打包:tar cvf FileName.t ...
- tar/gz/bz/gz2/bz2...压缩与解压缩
*.gz2用gunzip2 *.gz2 For examplegunzip2 *.tar.gz2,解出一个*.tar文件, 然后tar -vxf *.tar即可 .rar格式 解压:[*******] ...
- linux 压缩文件夹bz,Linux下tar、bz、gz等压缩包的压缩和解压
Linux下用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩存储,一般可以节约50-90%的存储空间,本文是对压缩和解压命令的大致总结 .tar.gz 或 .tgz 解压: ...
- CentOS 8 安装 JAVA 三种方式(yum / rpm / tar.gz)
JAVA 8:官方下载 JAVA 11:官方下载 手动安装的两种方式,在安装前统一在usr目录下创建一个JAVA目录 mkdir /usr/java [root@CentOS8 ~]# mkdir / ...
- [转] linux下.tar .gz .tgz .bz2 .bz等解、压包命令详解
tar命令 [原始位置:http://www.51testing.com/?uid-342316-action-viewspace-itemid-232627」 tar 可以为文件和目录创建档案.利用 ...
- Linux下创建与解压zip, tar, tar.gz和tar.bz2文件
在Linux下面去压缩文件或者目录.我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法. zip格式已成为压缩文件的标准选择,而且它在windows上也能使用. 经常用zi ...
- linux中解压.tgz, .tar.gz ,zip ,gz, .tar文件
将.tgz文件解压在当前目录: tar zxvf MY_NAME.tgz 将.tar.gz文件解压在当前目录: tar zxvf MY_NAME.tar.gz tar -xvf file.tar // ...
- tar gz bz bz2 等各种解压文件使用方法
.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) --------------- .gz 解压 ...
最新文章
- 默认子进程与父进程属于同一个进程组,所以注意对接受到的信号的处理方式
- 梯度、梯度下降,随机梯度下降
- boost::geometry模块测试地理策略Testing geographic strategies的测试程序
- 开发中 常用 js 记录(一)
- oracle 查询数据库io,理解Oracle中的并行查询IO
- 乌班图 之 常用操作命令(二)
- c#10:string内插处理
- 锐捷交换机实验案例:vlan间互访的配置与验证
- matplotlib-27 内嵌环形饼图
- FastDFS同ip同机器迁移存储位置
- MATLAB GUI中显示数学公式
- 产品经理的职责和分类
- 今天电脑突然出现问题: 请安装 TCP/IP 协议 错误 10106 【已解决·】
- 实在没忍住还是对你出手了-Tom猫源码结构
- 正则表达式 re sys os random time 模块
- html5如何快速根据psd,微页h5制作工具怎么快速导入PSD源文件?
- MATLAB教程二:MATLAB矩阵处理
- ADO.NET中五个对象
- XTU 1256 湘潭大学
- android:layout_gravity=end,android layout_gravity 和gravity
热门文章
- mysql实现vpd_MySQL支持类似Oracle的VPD特性吗
- Arch 安装中文输入法
- VMware的“Intel VT-x is disabled”解决方法
- 【渝粤教育】电大中专计算机职业素养 (13)作业 题库
- php session.cookie_path,php session和cookie使用说明
- linux. 获得cpu利用率 arm,Linux如何统计进程的CPU利用率
- Discuz!教程之从码云下载的Discuz!代码安装后个人资料页面乱码问题修复
- echarts环形图内实现自定义添加文字数字和缩放自适应
- coffee编译coffee到js
- Unity3D优化技巧系列七