The compress algorithm tool.(常见压缩算法工具类)
压缩是很常见的一个需求,但是使用 apache 的工具类进行压缩,需要自己处理很多事情。
比如文件是否存在,不存在则需要创建,还要循环处理各种信息,这一点也不优雅。
于是,就基于 apache common-compress 进行封装,便于后期使用。
JDK1.7+
Maven 3.x+
<dependency> <groupId>com.github.houbb</groupId> <artifactId>compress</artifactId> <version>0.0.3</version> </dependency>
所有测试代码,都可以在 test 模块下找到。
将 source 路径的文件,压缩为 target 文件。
指定压缩方式为 ZIP。
public void compressTest() { String source = "C://Users//binbin.hou//Desktop//1.txt"; String target = "C://Users//binbin.hou//Desktop//1.zip"; CompressBs.newInstance(CompressTypeEnum.ZIP) .source(source) .target(target) .compress(); }
将 source 路径的文件,解压缩到 target 路径下。
指定解压缩方式为 ZIP。
public void uncompressTest() { String source = "C://Users//binbin.hou//Desktop//1.zip"; String target = "C://Users//binbin.hou//Desktop//"; CompressBs.newInstance(CompressTypeEnum.ZIP) .source(source) .target(target) .uncompress(); }
参见 CompressTypeEnum
枚举类。
目前支持如下几种:
public enum CompressTypeEnum { /** * 归档系列 */ JAR, /** * 7z 压缩方式 */ SEVENZ, /** * zip 压缩方式 */ ZIP, /** * tar 压缩方式 */ TAR, ; }
CompressBs
引导类还支持更加丰富的属性配置。
使用起来也非常简单方便,如下:
public void configTest() { // 指定加密策略 CompressBs.newInstance(CompressTypeEnum.ZIP) // 指定源文件 .source("") // 指定目标文件(夹) .target("") // 指定密码,默认无。 .password("") // 是否使用相对路径进行处理 .relativePath(false) // 指定解压或者压缩 .compress(); }
上述工具开源地址见 compress