java 压缩归档算法开源框架工具 compress

17,645 阅读1分钟

compress

The compress algorithm tool.(常见压缩算法工具类)

创作背景

压缩是很常见的一个需求,但是使用 apache 的工具类进行压缩,需要自己处理很多事情。

比如文件是否存在,不存在则需要创建,还要循环处理各种信息,这一点也不优雅。

于是,就基于 apache common-compress 进行封装,便于后期使用。

特性

  • 支持常见归档压缩算法

  • fluent api 设计,优雅方便

快速开始

环境要求

JDK1.7+

Maven 3.x+

maven 引入

<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