Zip解压压缩文件

 

 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格式解压,Zip流的使用,文件解压)