在Java中可以使用ZipOutputStream和ZipInputStream来实现zip的压缩和解压缩操作,另外使用FileSystem也可以用来实现zip的解压缩,下面将介绍这几种方式,直接上代码。
zip压缩
待压缩文件目录结构:
每个zip文件项都要对应一个ZipEntry,然后通过ZipOutputStream的putNextEntry方法开始写入一个新的zip文件项,将文件数据发送到zip输出流中,完成后再调用closeEntry方法。
@Test
public void testCompressByZip() {
try (
//指定压缩完成后zip文件的存储路径
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream("F:\\myFavorites.zip"))
)
{
//待压缩文件/目录所在的目录
File fileFolder = new File("F:\\我的收藏");
//获取目录下的所有文件
File[] files = fileFolder.listFiles();
ZipEntry zipEntry;
byte[] byteArray;
int len;