当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

Zip解压压缩文件

发表于: 2014-10-07   作者:百合不是茶   来源:转载   浏览:
摘要:    ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件; ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));     &n

 

 ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件;

ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));

 

 

 

ZIP输入流打开后,你可以使用getNextEntry方法来读取ZIP文件中的条目数,该方法返回一个ZipEntry对象。如果到达文件的尾部,getNextEntry返回null;

while ((z = in.getNextEntry()) != null) {

}

 

建立输出流将解压的文档输出

 

下面的代码只能解压单个文件;

 

package ZIP文件流;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

/**
 * 只能解压单个压缩文件
 */
public class DemoZip {

	public static void main(String[] args) {
		UpZip("F:\\test.zip", "D:");
		System.out.println("压缩完成");
	}

	/**
	 * 解压缩zip文件的方法
	 * 
	 * @param zipFileName
	 *            要被解压的文件
	 * @param outputDirectory
	 *            解压输出路径
	 */
	public static void UpZip(String zipFileName, String outputDirectory) {
		System.out.println("解压单个文件");
		try {
			ZipInputStream in = new ZipInputStream(new FileInputStream(
					zipFileName));
			/*
			 * 获取ZipInputStream中的ZipEntry条目,一个zip文件中可能包含多个ZipEntry,
			 * 当getNextEntry方法的返回值为null,则代表ZipInputStream中没有下一个ZipEntry,输入流读取完成;
			 */

			ZipEntry z ;
			while ((z = in.getNextEntry()) != null) {
				System.out.println( z.getName());
				// 创建以zip包文件名为目录名的根目录
				File f = new File(outputDirectory);
				//创建目录
				f.mkdirs();
				//是否为目录
				if (z.isDirectory()) {
					//获取名字
					String name = z.getName();
					//截取名字
					name = name.substring(name.length() );
					//文件路径
					f = new File(outputDirectory + File.separator + name);
					//文件目录
					f.mkdirs();
				} else {
					f = new File(outputDirectory + File.separator + z.getName());
					//创建新文件
					f.createNewFile();
					//输出流
					FileOutputStream out = new FileOutputStream(f);
					byte[] buff = new byte[1024];
					int len;
					while ((len = in.read(buff)) != -1) {
						out.write(buff, 0, len);
					}
					out.close();
				}
			}
			in.close();
		} catch (Exception e) {
			e.printStackTrace();

		}

	}
}

 

 

求大神指点怎么解压 压缩文件中的多个文件:::::

 

Zip解压压缩文件

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
  最近因为项目的需要,要对zip压缩文件进行批量解压。在网上查阅了相关的资料后,最终使用zlib开
package ytu.com; import java.io.*; import java.util.zip.*; public class ReadZipFile { public
<?php class PHPZip { function Zip($dir, $zipfilename) { if (@function_exists ( 'gzcompress
从中午开始学习压缩流的使用一直到现在才搞定压缩,最后发现居然是两个反斜杠错了 感觉都不会爱了,,,
鸣谢:http://blog.csdn.net/kalision/article/details/7864372 强力推荐解压:http://blog.csdn.ne
1.引言 之前在 压缩与解压1---字符串的压缩与解压(http://www.cnblogs.com/java-pan/archive/2012/0
最近在看java解压缩,发现RAR没有公开加密算法,所以java内部没有提供api解压,当时就觉得郁闷的,
Files -> Associate With... 以后双击zip文件就直接用TC打开了. 各种操作比较方便.
效果如下: <?php header("content-type:text/html;charset=utf-8"); //验证密码,请自行修改以
PHP5.2以后,强化了对压缩文件的处理,不仅对zip算法,还包括rar算法、gzip算法等都有了相应的支持
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号