Apache Commons:简单的使用Compress创建7z压缩文件
Posted 你是小KS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache Commons:简单的使用Compress创建7z压缩文件相关的知识,希望对你有一定的参考价值。
1. 声明
当前内容主要为学习和使用Apache Commons Compress这个工具类创建7z的压缩文件
当前内容主要借鉴:官方文档
基本pom
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.20</version>
</dependency>
<!-- 上面的compress需要依赖下面这个 -->
<!-- https://mvnrepository.com/artifact/org.tukaani/xz -->
<dependency>
<groupId>org.tukaani</groupId>
<artifactId>xz</artifactId>
<version>1.9</version>
</dependency>
如果是出现org.tukaani.xz.XXX
没找到,那么表示没有导入上面的包导致的问题
2. 基本demo
首先准备一个需要压缩的文件,再开始编写代码
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry;
import org.apache.commons.compress.archivers.sevenz.SevenZOutputFile;
/**
*
* @author hy
* @createTime 2021-06-20 13:22:37
* @description 当前内容主要为测试和使用7z进行压缩
*
*/
public class SevenZCompressTest {
public static void main(String[] args) {
// 报错缺少org.tukaani.xz.FilterOptions这个类
File outFile = new File("C:\\\\Users\\\\admin\\\\Desktop\\\\java的测试\\\\\\\\read-write-jar-test\\\\myDemo.7z");
File inFile = new File("C:\\\\Users\\\\admin\\\\Desktop\\\\java的测试\\\\read-write-jar-test\\\\jetbrains-agent.jar");
try (SevenZOutputFile sevenZOutput = new SevenZOutputFile(outFile);) {
SevenZArchiveEntry entry = sevenZOutput.createArchiveEntry(inFile, "jetbrains-agent.jar");
sevenZOutput.putArchiveEntry(entry);
byte[] buffer = new byte[1024];
int len = 0;
try (FileInputStream fis = new FileInputStream(inFile)) {
while ((len = fis.read(buffer)) != -1) {
sevenZOutput.write(buffer, 0, len);
}
}
sevenZOutput.closeArchiveEntry();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("成功写入一个7z的文件.....");
}
}
具体的基本操作和前面的操作jar文件很像,并且很简单
3. 执行后的结果
压缩成功
以上是关于Apache Commons:简单的使用Compress创建7z压缩文件的主要内容,如果未能解决你的问题,请参考以下文章
Apache Commons:简单的使用Configuration读取和修改配置文件
Apache Commons:CLi的简单的使用(创建mysql的访问器)
如何在没有 IDE 的情况下使用 Apache Commons Lang 代码? (org.apache.commons.lang3)