Java中zip的压缩和解压缩

在Java中可以使用ZipOutputStream和ZipInputStream来实现zip的压缩和解压缩操作,另外使用FileSystem也可以用来实现zip的解压缩,下面将介绍这几种方式,直接上代码。

zip压缩

待压缩文件目录结构:

每个zip文件项都要对应一个ZipEntry,然后通过ZipOutputStream的putNextEntry方法开始写入一个新的zip文件项,将文件数据发送到zip输出流中,完成后再调用closeEntry方法。

@Testpublic 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;		//遍历目录下的所有文件/目录,并将它们添加到压缩文件中		for (File file : files) {			//一个ZipEntry对应压缩文件中的一项			zipEntry = new ZipEntry(file.getName());			zipOutputStream.putNextEntry(zipEntry);			try (FileInputStream in = new FileInputStream(file)) {				byteArray = new byte[1024];				while ((len = in.read(byteArray)) != -1) {					zipOutputStream.write(byteArray, 0, len);				}			} catch (IOException ex) {				ex.printStackTrace();			}			zipOutputStream.closeEntry();		}	} catch (IOException ex) {		ex.printStackTrace();	}}

压缩结果:

zip解压缩

遍历zip文件中的所有项,并获取对应项的输入流,然后通过FileOutputStream输出到指定目录中。

@Testpublic void testDecompressByZip() {	try (		//指定需要解压缩的zip文件		ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream("F:\\myFavorites.zip"))	)	{		ZipEntry zipEntry;		byte[] byteArray;		int len;		//遍历zip文件中的所有项,并逐个解压到指定的目录中		while ((zipEntry = zipInputStream.getNextEntry()) != null) {			try (FileOutputStream fileOutputStream = new FileOutputStream("F:\\我的.........
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Linux下创建加密的压缩文件

Linux下创建加密的压缩文件方法一:1.使用ZIP命令创建一个加密的ZIP文件:2.解压缩加密文件时,会提示要求输入密码:方法二:1.使用7z创建一个zip文件:2.解压缩加密文件:3.使用限制方法三:1.Tocre

linux常见压缩格式及deb安装包用法

ZIP格式评价:可能是目前使用的最多的文档压缩格式,跨平台。压缩率不高。压缩一个目录:\ziprarchive\_name.zipdirectory\_to\_compress解压缩:\unziparchive\_name.zipTAR格式评价:消耗cpu及时间少,仅仅是一个打包工具,并不负责压缩。

CentOS 安装 rar、zip 解压缩

Windows系统压缩的rar和zip文件,在Linux系统下是无法通过tar命令解压缩的,需要使用rar和zip命令来解压缩。下面记录一下rar和zip安装和简单的使用。一、rar安装使用Linux系统下使用rarlinux解压缩rar压缩文件,下载页面:http://www.r