说明文档
Commons Compress - Commons Compress User Guide
commons-compress 支持的压缩格式如下:
gzip, bzip2, xz, lzma, Pack200, DEFLATE, Brotli, DEFLATE64, ZStandard, Z
支持的归档格式如下:
7z, ar, arj, cpio, dump, tar, zip
示例:压缩解压 zip
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
import org.apache.commons.compress.utils.IOUtils;
public class ZipTest
{
public static void main(String[] args) throws Exception
{
zip();
unZip();
}
public static void zip() throws Exception
{
File zipFile = new File("test.zip");
ZipArchiveOutputStream stream = new ZipArchiveOutputStream(zipFile);
File[] files = new File("src/com/gujin/compress").listFiles();
for (File file : files)
{
InputStream in = new FileInputStream(file);
ZipArchiveEntry entry = new ZipArchiveEntry(file, file.getName());
// 添加一个条目
stream.putArchiveEntry(entry);
IOUtils.copy(in, stream);
// 结束
stream.closeArchiveEntry();
in.close();
}
stream.finish();
stream.close();
}
public static void unZip() throws Exception
{
InputStream stream = new FileInputStream("test.zip");
ZipArchiveInputStream inputStream = new ZipArchiveInputStream(stream);
ZipArchiveEntry entry = null;
while ((entry = inputStream.getNextZipEntry()) != null)
{
System.out.println(entry.getName());
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//读取内容
IOUtils.copy(inputStream, outputStream);
System.out.println(outputStream.toString());
}
inputStream.close();
stream.close();
}