java操作压缩文件

java io中提供了丰富的文件操作工具,其中对压缩文件的支持也很方便,下面说明对zip文件做多文件读写的用法:

public class file2 {

 

public static void main(String[] args) throws Exception {

FileOutputStream f = new FileOutputStream("test.zip");

CheckedOutputStream csum = new CheckedOutputStream(f, new Adler32());

ZipOutputStream zos = new ZipOutputStream(csum);

BufferedOutputStream out = new BufferedOutputStream(zos);

zos.setComment("A testing of java zip");

String[] s = { "1.txt", "2.txt" };

for (String ss : s) {

System.out.println("wrirting file:" + ss);

BufferedReader in = new BufferedReader(new FileReader(ss));

zos.putNextEntry(new ZipEntry(ss));

int c;

while ((c = in.read()) != -1) {

out.write(c);

}

in.close();

out.flush();

}

out.close();

System.out.println(csum.getChecksum().getValue());

 

System.out.println("reading……");

FileInputStream f1 = new FileInputStream("test.zip");

CheckedInputStream csum1 = new CheckedInputStream(f1, new Adler32());

ZipInputStream in2 = new ZipInputStream(csum1);

BufferedInputStream bis = new BufferedInputStream(in2);

ZipEntry ze;

while ((ze = in2.getNextEntry()) != null) {

System.out.println(ze);

int x;

while ((x = bis.read()) != -1) {

System.out.write(x);

}

System.out.println();

}

System.out.println(csum1.getChecksum().getValue());

bis.close();

ZipFile zf = new ZipFile("test.zip");

Enumeration e = zf.entries();

while (e.hasMoreElements()) {

ZipEntry ze2 = (ZipEntry) e.nextElement();

System.out.println(ze2);

}

 

}

}


对于每一个要加入压缩档案的文件,都必须调用putNextEntry(),并将其传递给一个ZipEntry对象,其中java支持Adler32和CRC32两种校验和的类型。解压缩文件利用ZipFile对象读取文件,该对象有一个entries()方法,返回一个枚举类型,就是所包含的文件!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值