java实现解压缩zip文件

在Eclipse中新建项目DecompressFiles,并在其中创建一个DecompressFiles.java文件。在该类的主方法中创建upzipFile()方法将指定的ZIP文件解压到指定目录下,其中zipName表示文件名,targetDirName表示需解压到的目录。核心代码如下所示:

public class DecompressFiles {
	public static void main(String[] args) {
		// 将刚创建的图片.zip文件解压缩到D盘的temp目录下
		String fileName = "D:/图片2";
		String zipName = "D:/图片/图片.zip";
		DecompressFiles.upzipFile(zipName, fileName);
	}
	// 将指定的zip文件解压到指定目录下,其中:zipName:文件名,targetDirName:需解压到的目录
	public static void upzipFile(String zipName, String targetDirName) {
		if (!targetDirName.endsWith(File.separator)) {
			targetDirName += File.separator;
		}
		try {
			// 根据zip文件创建ZipFile对象,此类的作用是从zip文件读取条目
			ZipFile zipFile = new ZipFile(zipName);
			ZipEntry zn = null;
			String entryName = null;
			String targetFileName = null;
			byte[] buffer = new byte[4096];
			int bytes_read;
			Enumeration entrys = zipFile.entries();			// 获取ZIP文件里所有的文件条目的名字
			while (entrys.hasMoreElements()) {				// 循环遍历所有的文件条目的名字
				zn = (ZipEntry) entrys.nextElement();
				entryName = zn.getName();				// 获得每一条文件的名字
				targetFileName = targetDirName + entryName;
				if (zn.isDirectory()) {					
					new File(targetFileName).mkdirs();		// 如果zn是一个目录,则创建目录
					continue;
				} else {					
					new File(targetFileName).getParentFile().mkdirs();// 如果zn是文件,则创建父目录
				}				
				File targetFile = new File(targetFileName);	// 否则创建文件
				System.out.println("正在创建文件:" + targetFile.getAbsolutePath());	
				FileOutputStream os = new FileOutputStream(targetFile);// 打开文件输出流
				InputStream is = zipFile.getInputStream(zn);	// 从ZipFile对象中打开entry的输入流
				while ((bytes_read = is.read(buffer)) != -1) {
					os.write(buffer, 0, bytes_read);
				}		
				os.close();								// 关闭流
				is.close();
			}
			System.out.println("解压缩"+zipName+"成功!");
		} catch (IOException err) {
			System.err.println("解压缩"+zipName+"失败: " + err);
		}
	}
}

ZIP文件格式是一种流行的数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨(Phil Katz),他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为application/zip。目前,ZIP格式属于几种主流的压缩格式之一,其竞争者包括RAR格式以及开放源码的7z格式。从性能上比较,RAR及7-Zip格式较ZIP格式压缩率较高,而7-Zip由于提供了免费的压缩工具而逐渐在更多的领域得到应用。Microsoft从Windows ME操作系统开始内置对zip格式的支持,即使用户的电脑上没有安装解压缩软件,也能打开和制作zip格式的压缩文件,mac os x和流行的linux操作系统也对zip格式提供了类似的支持。因此如果在网络上传播和分发文件,zip格式往往是最常用的选择。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值