思维导图
一个简单的例子
//文件对象
File file = new File("e:/test.zip");
try {
//压缩流只是修饰流,所以需要基本流
FileOutputStream fos = new FileOutputStream(file);
//可以对压缩流进行加密,Adler32是一种加密方式
CheckedOutputStream cos = new CheckedOutputStream(fos,new Adler32());
//压缩流
ZipOutputStream zos = new ZipOutputStream(cos);
DataOutputStream dos = new DataOutputStream(zos);
//把数据写入新的条目中
zos.putNextEntry(new ZipEntry("test1.txt"));
zos.putNextEntry(new ZipEntry("test2.txt"));
//写入数据
dos.writeInt(2);
dos.close();
//设置输入流
FileInputStream fi = new FileInputStream(file);
CheckedInputStream cis = new CheckedInputStream(fi,new Adler32());
ZipInputStream zis = new ZipInputStream(cis);
DataInputStream dis = new DataInputStream(zis);
//读取数据并输出到控制台
//压缩条目对象
ZipEntry ze;
//获取压缩文件的压缩条目对象
while((ze = zis.getNextEntry()) != null){
while(dis.available() != 0){
System.out.println(dis.read());
}
}
//关闭流
dis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}