欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Zip解压压缩文件

程序员文章站 2022-07-12 12:36:19
...

 

 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();

		}

	}
}

 

 

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