The compress algorithm tool.(常見壓縮算法工具類)java
壓縮是很常見的一個需求,可是使用 apache 的工具類進行壓縮,須要本身處理不少事情。git
好比文件是否存在,不存在則須要建立,還要循環處理各類信息,這一點也不優雅。github
因而,就基於 apache common-compress 進行封裝,便於後期使用。算法
支持常見歸檔壓縮算法apache
fluent api 設計,優雅方便api
JDK1.7+maven
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