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. 执行后的结果

在这里插入图片描述
在这里插入图片描述

压缩成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `org/apache/commons/compress/utils/InputStreamStatistics` 类通常是由 Apache Commons Compress 库提供的。因此,您需要将以下依赖项添加到您的项目中,以解决这个问题: Maven 项目: ```xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.21</version> </dependency> ``` Gradle 项目: ```groovy implementation 'org.apache.commons:commons-compress:1.21' ``` 请注意,版本号可能会随着时间的推移而有所更改,因此请根据情况更新版本号。 ### 回答2: org/apache/commons/compress/utils/InputStreamStatistics 对应的依赖是 Apache Commons Compress 库。 Apache Commons Compress 是一个流行的开源 Java 库,用于处理各种压缩和存档格式。它提供了一系列的类和工具,用于读取、写入和处理各种压缩文件,如ZIP、GZIP、7z、Tar等。 在 Apache Commons Compress 库中,org/apache/commons/compress/utils/InputStreamStatistics 是一个工具类,用于统计输入流的读取信息。它提供了方法来跟踪和报告输入流读取的字节数、读取的块数以及读取速度等信息。这可以帮助开发人员监控和优化输入流的读取效率,特别是在处理大量数据时。 要在项目中使用 org/apache/commons/compress/utils/InputStreamStatistics 类,需要在项目的构建文件中添加对 Apache Commons Compress 库的依赖。具体的依赖配置方法取决于项目使用的构建工具,如 Maven、Gradle等。 以下是使用 Maven 作为构建工具时添加依赖的示例: ```xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.21</version> </dependency> ``` 这样就可以在项目中使用 org/apache/commons/compress/utils/InputStreamStatistics 类,并享受它提供的统计功能了。记得根据实际需求和项目的特定版本需求,调整所使用Apache Commons Compress 库的版本号。 ### 回答3: org/apache/commons/compress/utils/InputStreamStatistics对应的依赖是commons-compress库。commons-compress是一个用于处理压缩和解压缩的Java库,提供了对不同压缩格式(如zip、tar、gzip等)的读取和写入功能。InputStreamStatistics是该库中的一个工具类,用于统计输入流的读取数据量、读取次数和平均速度等信息。 要使用org/apache/commons/compress/utils/InputStreamStatistics,需要在项目的构建文件(如pom.xml)中添加对commons-compress库的依赖声明。例如,使用Maven构建项目,可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>版本号</version> </dependency> ``` 其中,版本号是需要指定的commons-compress库的版本号。 添加了对commons-compress库的依赖后,就可以在项目中使用org/apache/commons/compress/utils/InputStreamStatistics。通过创建InputStreamStatistics对象,可以对输入流的读取进行统计,并获取各种读取信息。使用InputStreamStatistics可以方便地了解输入流的读取情况,帮助开发者进行性能优化和资源管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值