public class ZipUtils extends Object
压缩工具类
| 限定符和类型 | 字段和说明 |
|---|---|
private static int |
DEFAULT_BYTE_ARRAY_LENGTH |
private static Charset |
DEFAULT_CHARSET
默认编码,使用平台相关编码
|
| 构造器和说明 |
|---|
ZipUtils() |
| 限定符和类型 | 方法和说明 |
|---|---|
private static void |
addDir(String path,
ZipOutputStream out)
在压缩包中新建目录
|
private static void |
addFile(File file,
String path,
ZipOutputStream out)
添加文件到压缩包
|
private static void |
addFile(InputStream in,
String path,
ZipOutputStream out)
添加文件流到压缩包,添加后关闭流
|
private static File |
buildFile(File outFile,
String fileName)
根据压缩包中的路径构建目录结构,在Win下直接构建,在Linux下拆分路径单独构建
|
private static void |
closeEntry(ZipOutputStream out)
关闭当前Entry,继续下一个Entry
|
private static void |
deflater(InputStream in,
OutputStream out,
int level,
boolean nowrap)
将普通数据流压缩成zlib到out中
|
private static ZipOutputStream |
getZipOutputStream(File zipFile,
Charset charset)
|
private static ZipOutputStream |
getZipOutputStream(OutputStream out,
Charset charset)
|
static byte[] |
gzip(byte[] buf)
Gzip压缩处理
|
static byte[] |
gzip(File file)
Gzip压缩文件
|
static byte[] |
gzip(InputStream in)
Gzip压缩文件
|
static byte[] |
gzip(InputStream in,
int length)
Gzip压缩文件
|
static byte[] |
gzip(String content,
String charset)
Gzip压缩处理
|
private static void |
inflater(InputStream in,
OutputStream out,
boolean nowrap)
将Zlib流解压到out中
|
static List<String> |
listFileNames(ZipFile zipFile,
String dir)
获取Zip文件中指定目录下的所有文件,只显示文件,不显示目录
|
static byte[] |
unGzip(byte[] buf)
Gzip解压处理
|
static String |
unGzip(byte[] buf,
String charset)
Gzip解压缩处理
|
static byte[] |
unGzip(InputStream in)
Gzip解压处理
|
static byte[] |
unGzip(InputStream in,
int length)
Gzip解压处理
|
static File |
unzip(File zipFile)
解压到文件名相同的目录中,使用UTF-8编码
|
static File |
unzip(File zipFile,
Charset charset)
解压到文件名相同的目录中
|
static File |
unzip(File zipFile,
File outFile)
解压,默认使用UTF-8编码
|
static File |
unzip(File zipFile,
File outFile,
Charset charset)
解压
|
static File |
unzip(InputStream in,
File outFile,
Charset charset)
解压
ZIP条目不使用高速缓冲。 |
static File |
unzip(String zipFilePath)
解压到文件名相同的目录中,默认编码UTF-8
|
static File |
unzip(String zipFilePath,
Charset charset)
解压到文件名相同的目录中
|
static File |
unzip(String zipFilePath,
String outFileDir)
解压,默认UTF-8编码
|
static File |
unzip(String zipFilePath,
String outFileDir,
Charset charset)
解压
|
static File |
unzip(ZipFile zipFile,
File outFile)
解压
|
static File |
unzip(ZipInputStream zipStream,
File outFile)
解压
ZIP条目不使用高速缓冲。 |
static byte[] |
unzipFileBytes(File zipFile,
Charset charset,
String name)
从Zip文件中提取指定的文件为bytes
|
static byte[] |
unzipFileBytes(File zipFile,
String name)
从Zip文件中提取指定的文件为bytes
|
static byte[] |
unzipFileBytes(String zipFilePath,
Charset charset,
String name)
从Zip文件中提取指定的文件为bytes
|
static byte[] |
unzipFileBytes(String zipFilePath,
String name)
从Zip文件中提取指定的文件为bytes
|
static byte[] |
unZlib(byte[] buf)
解压缩zlib
|
static String |
unZlib(byte[] buf,
String charset)
Zlib解压缩处理
|
static byte[] |
unZlib(InputStream in)
解压缩zlib
|
static byte[] |
unZlib(InputStream in,
int length)
解压缩zlib
|
private static void |
validateFiles(File zipFile,
File... srcFiles)
判断压缩文件保存的路径是否为源文件路径的子文件夹,如果是,则抛出异常(防止无限递归压缩的发生)
|
private static void |
write(ZipFile zipFile,
ZipEntry zipEntry,
File outItemFile)
从Zip中读取文件流并写出到文件
|
static File |
zip(File srcFile)
打包到当前目录,使用默认编码UTF-8
|
static File |
zip(File zipFile,
boolean withSrcDir,
File... srcFiles)
对文件或文件目录进行压缩
使用默认UTF-8编码 |
static File |
zip(File srcFile,
Charset charset)
打包到当前目录
|
static File |
zip(File zipFile,
Charset charset,
boolean withSrcDir,
File... srcFiles)
对文件或文件目录进行压缩
|
static File |
zip(File zipFile,
Charset charset,
boolean withSrcDir,
FileFilter filter,
File... srcFiles)
对文件或文件目录进行压缩
|
static File |
zip(File zipFile,
String[] paths,
InputStream[] ins)
对流中的数据加入到压缩文件
路径列表和流列表长度必须一致 |
static File |
zip(File zipFile,
String[] paths,
InputStream[] ins,
Charset charset)
对流中的数据加入到压缩文件
路径列表和流列表长度必须一致 |
static File |
zip(File zipFile,
String path,
InputStream in)
对流中的数据加入到压缩文件
使用默认编码UTF-8 |
static File |
zip(File zipFile,
String path,
InputStream in,
Charset charset)
对流中的数据加入到压缩文件
|
static File |
zip(File zipFile,
String path,
String data)
对流中的数据加入到压缩文件,使用默认UTF-8编码
|
static File |
zip(File zipFile,
String path,
String data,
Charset charset)
对流中的数据加入到压缩文件
|
private static void |
zip(File file,
String srcRootDir,
ZipOutputStream out,
FileFilter filter)
递归压缩文件夹
srcRootDir决定了路径截取的位置,例如: file的路径为d:/a/b/c/d.txt,srcRootDir为d:/a/b,则压缩后的文件与目录为结构为c/d.txt |
static void |
zip(OutputStream out,
Charset charset,
boolean withSrcDir,
FileFilter filter,
File... srcFiles)
对文件或文件目录进行压缩
|
static File |
zip(String srcPath)
打包到当前目录,使用默认编码UTF-8
|
static File |
zip(String srcPath,
Charset charset)
打包到当前目录
|
static File |
zip(String srcPath,
String zipPath)
对文件或文件目录进行压缩
不包含被打包目录 |
static File |
zip(String srcPath,
String zipPath,
boolean withSrcDir)
对文件或文件目录进行压缩
|
static File |
zip(String srcPath,
String zipPath,
Charset charset,
boolean withSrcDir)
对文件或文件目录进行压缩
|
static void |
zip(ZipOutputStream zipOutputStream,
boolean withSrcDir,
FileFilter filter,
File... srcFiles)
对文件或文件目录进行压缩
|
static byte[] |
zlib(byte[] buf,
int level)
打成Zlib压缩包
|
static byte[] |
zlib(File file,
int level)
Zlib压缩文件
|
static byte[] |
zlib(InputStream in,
int level)
打成Zlib压缩包
|
static byte[] |
zlib(InputStream in,
int level,
int length)
打成Zlib压缩包
|
static byte[] |
zlib(String content,
String charset,
int level)
Zlib压缩处理
|
private static final int DEFAULT_BYTE_ARRAY_LENGTH
private static final Charset DEFAULT_CHARSET
public static File zip(String srcPath) throws UtilException
srcPath - 源文件路径UtilException - IO异常public static File zip(String srcPath, Charset charset) throws UtilException
srcPath - 源文件路径charset - 编码UtilException - IO异常public static File zip(File srcFile) throws UtilException
srcFile - 源文件或目录UtilException - IO异常public static File zip(File srcFile, Charset charset) throws UtilException
srcFile - 源文件或目录charset - 编码UtilException - IO异常public static File zip(String srcPath, String zipPath) throws UtilException
srcPath - 要压缩的源文件路径。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径zipPath - 压缩文件保存的路径,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹UtilException - IO异常public static File zip(String srcPath, String zipPath, boolean withSrcDir) throws UtilException
srcPath - 要压缩的源文件路径。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径zipPath - 压缩文件保存的路径,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹withSrcDir - 是否包含被打包目录UtilException - IO异常public static File zip(String srcPath, String zipPath, Charset charset, boolean withSrcDir) throws UtilException
srcPath - 要压缩的源文件路径。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径zipPath - 压缩文件保存的路径,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹charset - 编码withSrcDir - 是否包含被打包目录UtilException - IO异常public static File zip(File zipFile, boolean withSrcDir, File... srcFiles) throws UtilException
zipFile - 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹withSrcDir - 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩srcFiles - 要压缩的源文件或目录。UtilException - IO异常public static File zip(File zipFile, Charset charset, boolean withSrcDir, File... srcFiles) throws UtilException
zipFile - 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹charset - 编码withSrcDir - 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩srcFiles - 要压缩的源文件或目录。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径UtilException - IO异常public static File zip(File zipFile, Charset charset, boolean withSrcDir, FileFilter filter, File... srcFiles) throws IORuntimeException
zipFile - 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹charset - 编码withSrcDir - 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩filter - 文件过滤器,通过实现此接口,自定义要过滤的文件(过滤掉哪些文件或文件夹不加入压缩)srcFiles - 要压缩的源文件或目录。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径IORuntimeException - IO异常public static void zip(OutputStream out, Charset charset, boolean withSrcDir, FileFilter filter, File... srcFiles) throws IORuntimeException
out - 生成的Zip到的目标流,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹charset - 编码withSrcDir - 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩filter - 文件过滤器,通过实现此接口,自定义要过滤的文件(过滤掉哪些文件或文件夹不加入压缩)srcFiles - 要压缩的源文件或目录。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径IORuntimeException - IO异常public static void zip(ZipOutputStream zipOutputStream, boolean withSrcDir, FileFilter filter, File... srcFiles) throws IORuntimeException
zipOutputStream - 生成的Zip到的目标流,不关闭此流withSrcDir - 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩filter - 文件过滤器,通过实现此接口,自定义要过滤的文件(过滤掉哪些文件或文件夹不加入压缩)srcFiles - 要压缩的源文件或目录。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径IORuntimeException - IO异常public static File zip(File zipFile, String path, String data) throws UtilException
zipFile - 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹path - 流数据在压缩文件中的路径或文件名data - 要压缩的数据UtilException - IO异常public static File zip(File zipFile, String path, String data, Charset charset) throws UtilException
zipFile - 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹path - 流数据在压缩文件中的路径或文件名data - 要压缩的数据charset - 编码UtilException - IO异常public static File zip(File zipFile, String path, InputStream in) throws UtilException
zipFile - 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹path - 流数据在压缩文件中的路径或文件名in - 要压缩的源UtilException - IO异常public static File zip(File zipFile, String path, InputStream in, Charset charset) throws UtilException
zipFile - 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹path - 流数据在压缩文件中的路径或文件名in - 要压缩的源,默认关闭charset - 编码UtilException - IO异常public static File zip(File zipFile, String[] paths, InputStream[] ins) throws UtilException
zipFile - 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹paths - 流数据在压缩文件中的路径或文件名ins - 要压缩的源UtilException - IO异常public static File zip(File zipFile, String[] paths, InputStream[] ins, Charset charset) throws UtilException
zipFile - 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹paths - 流数据在压缩文件中的路径或文件名ins - 要压缩的源,添加完成后自动关闭流charset - 编码UtilException - IO异常public static File unzip(String zipFilePath) throws UtilException
zipFilePath - 压缩文件路径UtilException - IO异常public static File unzip(String zipFilePath, Charset charset) throws UtilException
zipFilePath - 压缩文件路径charset - 编码UtilException - IO异常public static File unzip(File zipFile) throws UtilException
zipFile - 压缩文件UtilException - IO异常public static File unzip(File zipFile, Charset charset) throws UtilException
zipFile - 压缩文件charset - 编码UtilException - IO异常public static File unzip(String zipFilePath, String outFileDir) throws UtilException
zipFilePath - 压缩文件的路径outFileDir - 解压到的目录UtilException - IO异常public static File unzip(String zipFilePath, String outFileDir, Charset charset) throws UtilException
zipFilePath - 压缩文件的路径outFileDir - 解压到的目录charset - 编码UtilException - IO异常public static File unzip(File zipFile, File outFile) throws UtilException
zipFile - zip文件outFile - 解压到的目录UtilException - IO异常public static File unzip(File zipFile, File outFile, Charset charset) throws UtilException
zipFile - zip文件outFile - 解压到的目录charset - 编码UtilException - IO异常public static File unzip(ZipFile zipFile, File outFile) throws IORuntimeException
zipFile - zip文件,附带编码信息,使用完毕自动关闭outFile - 解压到的目录IORuntimeException - IO异常public static File unzip(InputStream in, File outFile, Charset charset) throws UtilException
in - zip文件流,使用完毕自动关闭outFile - 解压到的目录charset - 编码UtilException - IO异常public static File unzip(ZipInputStream zipStream, File outFile) throws UtilException
zipStream - zip文件流,包含编码信息outFile - 解压到的目录UtilException - IO异常public static byte[] unzipFileBytes(String zipFilePath, String name)
zipFilePath - Zip文件name - 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txtpublic static byte[] unzipFileBytes(String zipFilePath, Charset charset, String name)
zipFilePath - Zip文件charset - 编码name - 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txtpublic static byte[] unzipFileBytes(File zipFile, String name)
zipFile - Zip文件name - 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txtpublic static byte[] unzipFileBytes(File zipFile, Charset charset, String name)
zipFile - Zip文件charset - 编码name - 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txtpublic static byte[] gzip(String content, String charset) throws UtilException
content - 被压缩的字符串charset - 编码UtilException - IO异常public static byte[] gzip(byte[] buf)
throws UtilException
buf - 被压缩的字节流UtilException - IO异常public static byte[] gzip(File file) throws UtilException
file - 被压缩的文件UtilException - IO异常public static byte[] gzip(InputStream in) throws UtilException
in - 被压缩的流UtilException - IO异常public static byte[] gzip(InputStream in, int length) throws UtilException
in - 被压缩的流length - 预估长度UtilException - IO异常public static String unGzip(byte[] buf, String charset) throws UtilException
buf - 压缩过的字节流charset - 编码UtilException - IO异常public static byte[] unGzip(byte[] buf)
throws UtilException
buf - bufUtilException - IO异常public static byte[] unGzip(InputStream in) throws UtilException
in - Gzip数据UtilException - IO异常public static byte[] unGzip(InputStream in, int length) throws UtilException
in - Gzip数据length - 估算长度,如果无法确定请传入DEFAULT_BYTE_ARRAY_LENGTHUtilException - IO异常public static byte[] zlib(String content, String charset, int level)
content - 被压缩的字符串charset - 编码level - 压缩级别,1~9public static byte[] zlib(File file, int level)
file - 被压缩的文件level - 压缩级别public static byte[] zlib(byte[] buf,
int level)
buf - 数据level - 压缩级别,0~9public static byte[] zlib(InputStream in, int level)
in - 数据流level - 压缩级别,0~9public static byte[] zlib(InputStream in, int level, int length)
in - 数据流level - 压缩级别,0~9length - 预估大小public static String unZlib(byte[] buf, String charset)
buf - 压缩过的字节流charset - 编码public static byte[] unZlib(byte[] buf)
buf - 数据public static byte[] unZlib(InputStream in)
in - 数据流public static byte[] unZlib(InputStream in, int length)
in - 数据流length - 预估长度public static List<String> listFileNames(ZipFile zipFile, String dir)
zipFile - Zip文件dir - 目录前缀(目录前缀不包含开头的/)private static ZipOutputStream getZipOutputStream(File zipFile, Charset charset)
zipFile - 压缩文件charset - 编码ZipOutputStreamprivate static ZipOutputStream getZipOutputStream(OutputStream out, Charset charset)
out - 压缩文件流charset - 编码ZipOutputStreamprivate static void zip(File file, String srcRootDir, ZipOutputStream out, FileFilter filter) throws UtilException
out - 压缩文件存储对象srcRootDir - 被压缩的文件夹根目录file - 当前递归压缩的文件或目录对象filter - 文件过滤器,通过实现此接口,自定义要过滤的文件(过滤掉哪些文件或文件夹不加入压缩)UtilException - IO异常private static void addFile(File file, String path, ZipOutputStream out) throws UtilException
file - 需要压缩的文件path - 在压缩文件中的路径out - 压缩文件存储对象UtilException - IO异常private static void addFile(InputStream in, String path, ZipOutputStream out) throws UtilException
in - 需要压缩的输入流path - 压缩的路径out - 压缩文件存储对象UtilException - IO异常private static void addDir(String path, ZipOutputStream out) throws UtilException
path - 压缩的路径out - 压缩文件存储对象UtilException - IO异常private static void validateFiles(File zipFile, File... srcFiles) throws UtilException
zipFile - 压缩后的产生的文件路径srcFiles - 被压缩的文件或目录UtilExceptionprivate static void closeEntry(ZipOutputStream out)
out - ZipOutputStreamprivate static void write(ZipFile zipFile, ZipEntry zipEntry, File outItemFile) throws IORuntimeException
zipFile - Zip文件zipEntry - zip文件中的子文件outItemFile - 输出到的文件IORuntimeException - IO异常private static void inflater(InputStream in, OutputStream out, boolean nowrap)
in - zlib数据流out - 输出nowrap - true表示兼容Gzip压缩private static void deflater(InputStream in, OutputStream out, int level, boolean nowrap)
in - zlib数据流out - 输出level - 压缩级别,0~9nowrap - true表示兼容Gzip压缩Copyright © 2020. All rights reserved.