热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:ApacheCommons:简单的使用Compress创建7z压缩文件

本文由编程笔记#小编为大家整理,主要介绍了ApacheCommons:简单的使用Compress创建7z压缩文件相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了Apache Commons:简单的使用Compress创建7z压缩文件相关的知识,希望对你有一定的参考价值。






1. 声明

当前内容主要为学习和使用Apache Commons Compress这个工具类创建7z的压缩文件

当前内容主要借鉴:官方文档

基本pom

<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-compressartifactId>
<version>1.20version>
dependency>


<dependency>
<groupId>org.tukaanigroupId>
<artifactId>xzartifactId>
<version>1.9version>
dependency>

如果是出现org.tukaani.xz.XXX没找到&#xff0c;那么表示没有导入上面的包导致的问题


2. 基本demo

首先准备一个需要压缩的文件&#xff0c;再开始编写代码

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;
/**
*
* &#64;author hy
* &#64;createTime 2021-06-20 13:22:37
* &#64;description 当前内容主要为测试和使用7z进行压缩
*
*/

public class SevenZCompressTest {
public static void main(String[] args) {
// 报错缺少org.tukaani.xz.FilterOptions这个类
File outFile &#61; new File("C:\\\\Users\\\\admin\\\\Desktop\\\\java的测试\\\\\\\\read-write-jar-test\\\\myDemo.7z");
File inFile &#61; new File("C:\\\\Users\\\\admin\\\\Desktop\\\\java的测试\\\\read-write-jar-test\\\\jetbrains-agent.jar");
try (SevenZOutputFile sevenZOutput &#61; new SevenZOutputFile(outFile);) {
SevenZArchiveEntry entry &#61; sevenZOutput.createArchiveEntry(inFile, "jetbrains-agent.jar");
sevenZOutput.putArchiveEntry(entry);
byte[] buffer &#61; new byte[1024];
int len &#61; 0;
try (FileInputStream fis &#61; new FileInputStream(inFile)) {
while ((len &#61; fis.read(buffer)) !&#61; -1) {
sevenZOutput.write(buffer, 0, len);
}
}
sevenZOutput.closeArchiveEntry();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("成功写入一个7z的文件.....");
}
}

具体的基本操作和前面的操作jar文件很像&#xff0c;并且很简单


3. 执行后的结果

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

压缩成功






推荐阅读
  • 本文介绍了在Cpp中将字符串形式的数值转换为int或float等数值类型的方法,主要使用了strtol、strtod和strtoul函数。这些函数可以将以null结尾的字符串转换为long int、double或unsigned long类型的数值,且支持任意进制的字符串转换。相比之下,atoi函数只能转换十进制数值且没有错误返回。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 本文整理了Java中java.lang.NoSuchMethodError.getMessage()方法的一些代码示例,展示了NoSuchMethodErr ... [详细]
  • 本文介绍了关于Java异常的八大常见问题,包括异常管理的最佳做法、在try块中定义的变量不能用于catch或finally的原因以及为什么Double.parseDouble(null)和Integer.parseInt(null)会抛出不同的异常。同时指出这些问题是由于不同的开发人员开发所导致的,不值得过多思考。 ... [详细]
author-avatar
于华521_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有