Java用ZIP进行多文件保存

  Java里面的内置的ZIP文件压缩流具有很强的功能,能进行ZIP的压缩请求,下面我们来看利用ZIP流实现对文件的压缩和读取

   

package com.bird.thinking;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.util.Enumeration;
import java.util.zip.Adler32;
import java.util.zip.CheckedOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

/**
 * @use 用ZIP进行多文件保存
 * @author Bird
 *
 */
public class ZipCompress {
	public static void creatIndex() throws Exception{//构建压缩文件
		FileOutputStream f = new FileOutputStream("d://bird.zip");//构建文件输出流
		CheckedOutputStream csum = new CheckedOutputStream(f,new Adler32());//计算和校验文件Adler32()比较快一点
		ZipOutputStream zos = new ZipOutputStream(csum);//压缩文件输出流
		BufferedOutputStream out = new BufferedOutputStream(zos);//构建缓冲区
		zos.setComment("A Test of java Zipping");//添加注释
		BufferedReader in = new BufferedReader(new FileReader("d://book.xml"));//读取磁盘的一个文件
		zos.putNextEntry(new ZipEntry("book.xml"));//设置压缩包里面的内容
		int c ;
		while((c = in.read()) != -1){
			out.write(c);
		}
		in.close();
		out.flush();
		out.close();
	}
	
	
	public static void readIndex() throws Exception{//读取ZIP文件
		ZipFile zf = new ZipFile("d://bird.zip");
		Enumeration<? extends ZipEntry> e = zf.entries();
		while(e.hasMoreElements()){
			ZipEntry ze2 = (ZipEntry)e.nextElement();
			System.out.println(ze2.getName());
		}
	}
	
	public static void main(String[] args) throws Exception{
		readIndex();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值