Package com.luna.common.file
Class ZipUtil
java.lang.Object
com.luna.common.file.ZipUtil
压缩工具类
- Author:
- Looly
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
append
(Path zipPath, Path appendFilePath, CopyOption... options) 在zip文件中添加新文件或目录
新文件添加在zip根目录,文件夹包括其本身和内容
如果待添加文件夹是系统根路径(如/或c:/),则只复制文件夹下的内容static InputStream
获取压缩包中的指定文件流static InputStream
获取压缩包中的指定文件流static InputStream
获取指定ZipEntry
的流,用于读取这个entry的内容static ZipOutputStream
getZipOutputStream
(OutputStream out, Charset charset) static byte[]
gzip
(byte[] buf) Gzip压缩处理static byte[]
Gzip压缩文件static byte[]
gzip
(InputStream in) Gzip压缩文件static byte[]
gzip
(InputStream in, int length) Gzip压缩文件static byte[]
Gzip压缩处理static void
读取并处理Zip文件中的每一个ZipEntry
static void
read
(ZipInputStream zipStream, java.util.function.Consumer<ZipEntry> consumer) 读取并处理Zip流中的每一个ZipEntry
static ZipFile
将Zip文件转换为ZipFile
static byte[]
unGzip
(byte[] buf) Gzip解压处理static String
Gzip解压缩处理static byte[]
unGzip
(InputStream in) Gzip解压处理static byte[]
unGzip
(InputStream in, int length) Gzip解压处理static File
解压到文件名相同的目录中,使用UTF-8编码static File
解压,默认使用UTF-8编码static File
解压static File
解压到文件名相同的目录中static File
unzip
(InputStream in, File outFile, Charset charset) 解压
ZIP条目不使用高速缓冲。static File
解压到文件名相同的目录中,默认编码UTF-8static File
解压,默认UTF-8编码static File
解压static File
解压到文件名相同的目录中static File
解压static File
unzip
(ZipInputStream zipStream, File outFile) 解压
ZIP条目不使用高速缓冲。static byte[]
unzipFileBytes
(File zipFile, String name) 从Zip文件中提取指定的文件为bytesstatic byte[]
unzipFileBytes
(File zipFile, Charset charset, String name) 从Zip文件中提取指定的文件为bytesstatic byte[]
unzipFileBytes
(String zipFilePath, String name) 从Zip文件中提取指定的文件为bytesstatic byte[]
unzipFileBytes
(String zipFilePath, Charset charset, String name) 从Zip文件中提取指定的文件为bytesstatic byte[]
unZlib
(byte[] buf) 解压缩zlibstatic String
Zlib解压缩处理static byte[]
unZlib
(InputStream in) 解压缩zlibstatic byte[]
unZlib
(InputStream in, int length) 解压缩zlibstatic File
打包到当前目录,使用默认编码UTF-8static File
对文件或文件目录进行压缩
使用默认UTF-8编码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-8static File
zip
(File zipFile, String path, InputStream in, Charset charset) 对流中的数据加入到压缩文件static File
对流中的数据加入到压缩文件,使用默认UTF-8编码static File
对流中的数据加入到压缩文件static File
打包到当前目录static File
对文件或文件目录进行压缩static File
zip
(File zipFile, Charset charset, boolean withSrcDir, FileFilter filter, File... srcFiles) 对文件或文件目录进行压缩static void
zip
(OutputStream out, String[] paths, InputStream[] ins) 将文件流压缩到目标流中static void
zip
(OutputStream out, Charset charset, boolean withSrcDir, FileFilter filter, File... srcFiles) 对文件或文件目录进行压缩static File
打包到当前目录,使用默认编码UTF-8static File
对文件或文件目录进行压缩
不包含被打包目录static File
对文件或文件目录进行压缩static File
对文件或文件目录进行压缩static File
打包到当前目录static void
zip
(ZipOutputStream zipOutputStream, boolean withSrcDir, FileFilter filter, File... srcFiles) Deprecated.static void
zip
(ZipOutputStream zipOutputStream, String[] paths, InputStream[] ins) 将文件流压缩到目标流中static byte[]
zlib
(byte[] buf, int level) 打成Zlib压缩包static byte[]
Zlib压缩文件static byte[]
zlib
(InputStream in, int level) 打成Zlib压缩包static byte[]
zlib
(InputStream in, int level, int length) 打成Zlib压缩包static byte[]
Zlib压缩处理
-
Constructor Details
-
ZipUtil
public ZipUtil()
-
-
Method Details
-
toZipFile
将Zip文件转换为ZipFile
- Parameters:
file
- zip文件charset
- 解析zip文件的编码,null表示CharsetUtil.CHARSET_UTF_8
- Returns:
ZipFile
-
getStream
获取指定ZipEntry
的流,用于读取这个entry的内容- Parameters:
zipFile
-ZipFile
zipEntry
-ZipEntry
- Returns:
- 流
- Throws:
IOException
- Since:
- 5.5.2
-
getZipOutputStream
- Parameters:
out
- 压缩文件流charset
- 编码- Returns:
ZipOutputStream
- Since:
- 5.8.0
-
append
public static void append(Path zipPath, Path appendFilePath, CopyOption... options) throws IOException 在zip文件中添加新文件或目录
新文件添加在zip根目录,文件夹包括其本身和内容
如果待添加文件夹是系统根路径(如/或c:/),则只复制文件夹下的内容- Parameters:
zipPath
- zip文件的PathappendFilePath
- 待添加文件Path(可以是文件夹)options
- 拷贝选项,可选是否覆盖等- Throws:
IOException
- Since:
- 5.7.15
-
zip
打包到当前目录,使用默认编码UTF-8- Parameters:
srcPath
- 源文件路径- Returns:
- 打包好的压缩文件
- Throws:
IOException
-
zip
打包到当前目录- Parameters:
srcPath
- 源文件路径charset
- 编码- Returns:
- 打包好的压缩文件
- Throws:
IOException
-
zip
打包到当前目录,使用默认编码UTF-8- Parameters:
srcFile
- 源文件或目录- Returns:
- 打包好的压缩文件
- Throws:
IOException
-
zip
打包到当前目录- Parameters:
srcFile
- 源文件或目录charset
- 编码- Returns:
- 打包好的压缩文件
- Throws:
IOException
-
zip
对文件或文件目录进行压缩
不包含被打包目录- Parameters:
srcPath
- 要压缩的源文件路径。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径zipPath
- 压缩文件保存的路径,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹- Returns:
- 压缩好的Zip文件
- Throws:
IOException
-
zip
对文件或文件目录进行压缩- Parameters:
srcPath
- 要压缩的源文件路径。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径zipPath
- 压缩文件保存的路径,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹withSrcDir
- 是否包含被打包目录- Returns:
- 压缩文件
- Throws:
IOException
-
zip
public static File zip(String srcPath, String zipPath, Charset charset, boolean withSrcDir) throws IOException 对文件或文件目录进行压缩- Parameters:
srcPath
- 要压缩的源文件路径。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径zipPath
- 压缩文件保存的路径,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹charset
- 编码withSrcDir
- 是否包含被打包目录- Returns:
- 压缩文件
- Throws:
IOException
-
zip
对文件或文件目录进行压缩
使用默认UTF-8编码- Parameters:
zipFile
- 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹withSrcDir
- 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩srcFiles
- 要压缩的源文件或目录。- Returns:
- 压缩文件
- Throws:
IOException
-
zip
public static File zip(File zipFile, Charset charset, boolean withSrcDir, File... srcFiles) throws IOException 对文件或文件目录进行压缩- Parameters:
zipFile
- 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹charset
- 编码withSrcDir
- 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩srcFiles
- 要压缩的源文件或目录。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径- Returns:
- 压缩文件
- Throws:
IOException
-
zip
public static File zip(File zipFile, Charset charset, boolean withSrcDir, FileFilter filter, File... srcFiles) throws IOException 对文件或文件目录进行压缩- Parameters:
zipFile
- 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹charset
- 编码withSrcDir
- 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩filter
- 文件过滤器,通过实现此接口,自定义要过滤的文件(过滤掉哪些文件或文件夹不加入压缩)srcFiles
- 要压缩的源文件或目录。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径- Returns:
- 压缩文件
- Throws:
IOException
- Since:
- 4.6.5
-
zip
public static void zip(OutputStream out, Charset charset, boolean withSrcDir, FileFilter filter, File... srcFiles) throws IOException 对文件或文件目录进行压缩- Parameters:
out
- 生成的Zip到的目标流,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹charset
- 编码withSrcDir
- 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩filter
- 文件过滤器,通过实现此接口,自定义要过滤的文件(过滤掉哪些文件或文件夹不加入压缩)srcFiles
- 要压缩的源文件或目录。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径- Throws:
IOException
- Since:
- 5.1.1
-
zip
@Deprecated public static void zip(ZipOutputStream zipOutputStream, boolean withSrcDir, FileFilter filter, File... srcFiles) Deprecated.对文件或文件目录进行压缩- Parameters:
zipOutputStream
- 生成的Zip到的目标流,自动关闭此流withSrcDir
- 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩filter
- 文件过滤器,通过实现此接口,自定义要过滤的文件(过滤掉哪些文件或文件夹不加入压缩)srcFiles
- 要压缩的源文件或目录。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径- Since:
- 5.1.1
-
zip
对流中的数据加入到压缩文件,使用默认UTF-8编码- Parameters:
zipFile
- 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹path
- 流数据在压缩文件中的路径或文件名data
- 要压缩的数据- Returns:
- 压缩文件
- Since:
- 3.0.6
-
zip
对流中的数据加入到压缩文件- Parameters:
zipFile
- 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹path
- 流数据在压缩文件中的路径或文件名data
- 要压缩的数据charset
- 编码- Returns:
- 压缩文件
- Since:
- 3.2.2
-
zip
对流中的数据加入到压缩文件
使用默认编码UTF-8- Parameters:
zipFile
- 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹path
- 流数据在压缩文件中的路径或文件名in
- 要压缩的源- Returns:
- 压缩文件
- Since:
- 3.0.6
-
zip
对流中的数据加入到压缩文件- Parameters:
zipFile
- 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹path
- 流数据在压缩文件中的路径或文件名in
- 要压缩的源,默认关闭charset
- 编码- Returns:
- 压缩文件
- Since:
- 3.2.2
-
zip
对流中的数据加入到压缩文件
路径列表和流列表长度必须一致- Parameters:
zipFile
- 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹paths
- 流数据在压缩文件中的路径或文件名ins
- 要压缩的源,添加完成后自动关闭流- Returns:
- 压缩文件
- Since:
- 3.0.9
-
zip
对流中的数据加入到压缩文件
路径列表和流列表长度必须一致- Parameters:
zipFile
- 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹paths
- 流数据在压缩文件中的路径或文件名ins
- 要压缩的源,添加完成后自动关闭流charset
- 编码- Returns:
- 压缩文件
- Since:
- 3.0.9
-
zip
将文件流压缩到目标流中- Parameters:
out
- 目标流,压缩完成自动关闭paths
- 流数据在压缩文件中的路径或文件名ins
- 要压缩的源,添加完成后自动关闭流- Since:
- 5.5.2
-
zip
将文件流压缩到目标流中- Parameters:
zipOutputStream
- 目标流,压缩完成自动关闭paths
- 流数据在压缩文件中的路径或文件名ins
- 要压缩的源,添加完成后自动关闭流- Since:
- 5.5.2
-
unzip
解压到文件名相同的目录中,默认编码UTF-8- Parameters:
zipFilePath
- 压缩文件路径- Returns:
- 解压的目录
-
unzip
解压到文件名相同的目录中- Parameters:
zipFilePath
- 压缩文件路径charset
- 编码- Returns:
- 解压的目录
- Since:
- 3.2.2
-
unzip
解压到文件名相同的目录中,使用UTF-8编码- Parameters:
zipFile
- 压缩文件- Returns:
- 解压的目录
- Since:
- 3.2.2
-
unzip
解压到文件名相同的目录中- Parameters:
zipFile
- 压缩文件charset
- 编码- Returns:
- 解压的目录
- Since:
- 3.2.2
-
unzip
解压,默认UTF-8编码- Parameters:
zipFilePath
- 压缩文件的路径outFileDir
- 解压到的目录- Returns:
- 解压的目录
-
unzip
解压- Parameters:
zipFilePath
- 压缩文件的路径outFileDir
- 解压到的目录charset
- 编码- Returns:
- 解压的目录
-
unzip
解压,默认使用UTF-8编码- Parameters:
zipFile
- zip文件outFile
- 解压到的目录- Returns:
- 解压的目录
-
unzip
解压- Parameters:
zipFile
- zip文件outFile
- 解压到的目录charset
- 编码- Returns:
- 解压的目录
- Since:
- 3.2.2
-
unzip
解压- Parameters:
zipFile
- zip文件,附带编码信息,使用完毕自动关闭outFile
- 解压到的目录- Returns:
- 解压的目录
- Since:
- 4.5.8
-
get
获取压缩包中的指定文件流- Parameters:
zipFile
- 压缩文件charset
- 编码path
- 需要提取文件的文件名或路径- Returns:
- 压缩文件流,如果未找到返回
null
- Throws:
IOException
- Since:
- 5.5.2
-
get
获取压缩包中的指定文件流- Parameters:
zipFile
- 压缩文件path
- 需要提取文件的文件名或路径- Returns:
- 压缩文件流,如果未找到返回
null
- Throws:
IOException
- Since:
- 5.5.2
-
read
读取并处理Zip文件中的每一个ZipEntry
- Parameters:
zipFile
- Zip文件consumer
-ZipEntry
处理器- Since:
- 5.5.2
-
unzip
解压
ZIP条目不使用高速缓冲。- Parameters:
in
- zip文件流,使用完毕自动关闭outFile
- 解压到的目录charset
- 编码- Returns:
- 解压的目录
- Since:
- 4.5.8
-
unzip
解压
ZIP条目不使用高速缓冲。- Parameters:
zipStream
- zip文件流,包含编码信息outFile
- 解压到的目录- Returns:
- 解压的目录
- Since:
- 4.5.8
-
read
读取并处理Zip流中的每一个ZipEntry
- Parameters:
zipStream
- zip文件流,包含编码信息consumer
-ZipEntry
处理器- Since:
- 5.5.2
-
unzipFileBytes
从Zip文件中提取指定的文件为bytes- Parameters:
zipFilePath
- Zip文件name
- 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt- Returns:
- 文件内容bytes
- Throws:
IOException
- Since:
- 4.1.8
-
unzipFileBytes
public static byte[] unzipFileBytes(String zipFilePath, Charset charset, String name) throws IOException 从Zip文件中提取指定的文件为bytes- Parameters:
zipFilePath
- Zip文件charset
- 编码name
- 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt- Returns:
- 文件内容bytes
- Throws:
IOException
- Since:
- 4.1.8
-
unzipFileBytes
从Zip文件中提取指定的文件为bytes- Parameters:
zipFile
- Zip文件name
- 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt- Returns:
- 文件内容bytes
- Throws:
IOException
- Since:
- 4.1.8
-
unzipFileBytes
从Zip文件中提取指定的文件为bytes- Parameters:
zipFile
- Zip文件charset
- 编码name
- 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt- Returns:
- 文件内容bytes
- Throws:
IOException
- Since:
- 4.1.8
-
gzip
Gzip压缩处理- Parameters:
content
- 被压缩的字符串charset
- 编码- Returns:
- 压缩后的字节流
-
gzip
public static byte[] gzip(byte[] buf) Gzip压缩处理- Parameters:
buf
- 被压缩的字节流- Returns:
- 压缩后的字节流
-
gzip
Gzip压缩文件- Parameters:
file
- 被压缩的文件- Returns:
- 压缩后的字节流
-
gzip
Gzip压缩文件- Parameters:
in
- 被压缩的流- Returns:
- 压缩后的字节流
- Since:
- 4.1.18
-
gzip
Gzip压缩文件- Parameters:
in
- 被压缩的流length
- 预估长度- Returns:
- 压缩后的字节流
- Since:
- 4.1.18
-
unGzip
Gzip解压缩处理- Parameters:
buf
- 压缩过的字节流charset
- 编码- Returns:
- 解压后的字符串
-
unGzip
public static byte[] unGzip(byte[] buf) Gzip解压处理- Parameters:
buf
- buf- Returns:
- bytes
-
unGzip
Gzip解压处理- Parameters:
in
- Gzip数据- Returns:
- 解压后的数据
-
unGzip
Gzip解压处理- Parameters:
in
- Gzip数据length
- 估算长度,如果无法确定请传入DEFAULT_BYTE_ARRAY_LENGTH
- Returns:
- 解压后的数据
- Since:
- 4.1.18
-
zlib
Zlib压缩处理- Parameters:
content
- 被压缩的字符串charset
- 编码level
- 压缩级别,1~9- Returns:
- 压缩后的字节流
- Since:
- 4.1.4
-
zlib
Zlib压缩文件- Parameters:
file
- 被压缩的文件level
- 压缩级别- Returns:
- 压缩后的字节流
- Since:
- 4.1.4
-
zlib
public static byte[] zlib(byte[] buf, int level) 打成Zlib压缩包- Parameters:
buf
- 数据level
- 压缩级别,0~9- Returns:
- 压缩后的bytes
- Since:
- 4.1.4
-
zlib
打成Zlib压缩包- Parameters:
in
- 数据流level
- 压缩级别,0~9- Returns:
- 压缩后的bytes
- Since:
- 4.1.19
-
zlib
打成Zlib压缩包- Parameters:
in
- 数据流level
- 压缩级别,0~9length
- 预估大小- Returns:
- 压缩后的bytes
- Since:
- 4.1.19
-
unZlib
Zlib解压缩处理- Parameters:
buf
- 压缩过的字节流charset
- 编码- Returns:
- 解压后的字符串
- Since:
- 4.1.4
-
unZlib
public static byte[] unZlib(byte[] buf) 解压缩zlib- Parameters:
buf
- 数据- Returns:
- 解压后的bytes
- Since:
- 4.1.4
-
unZlib
解压缩zlib- Parameters:
in
- 数据流- Returns:
- 解压后的bytes
- Since:
- 4.1.19
-
unZlib
解压缩zlib- Parameters:
in
- 数据流length
- 预估长度- Returns:
- 解压后的bytes
- Since:
- 4.1.19
-
zip(OutputStream, Charset, boolean, FileFilter, File...)