import java.io.*;
import java.util.*;
import java.util.zip.ZipOutputStream;
import java.util.zip.ZipEntry;
public class ZipOutputStreamDemo01 {
public static void main(String[] args)throws Exception {
File file=new File("C:\\Users\\xinle\\Desktop"+File.separator+"压缩文件练习(A).txt");
//建立一个压缩文件实例化对象
//zipFile指的是将文件压缩后变成的压缩文件(zipFile)的名字
File zipFile=new File("C:\\Users\\xinle\\Desktop"+File.separator+"压缩后的文件.zip");
//输入流读取目标文件(将要被压缩文件)当中的数据信息,将从目标文件当中读取到的数据信息放入到缓存当中方便后面的输出流用
InputStream input=new FileInputStream(file);//建立指定文件对应的输入流,用于读取指定文件当中的数据信息
ZipOutputStream zipOut=null;//声明一个压缩输出流对象
//建立文件输出流用于将缓存当中的数据输出到zip文件当中,同时对输出流进行包装使其变为一个实例化对象的压缩输出流以此来实现向压缩文件当中输出数据的功能
zipOut=new ZipOutputStream(new FileOutputStream(zipFile));//实例化压缩输出流对象,准备向压缩文件当中输入数据
//zipEntry(String name)为压缩文件当中每一个具体的压缩内容(实体),参数name为每一个具体实体的名字
zipOut.putNextEntry(new ZipEntry("压缩文件的具体实例"));//建立压缩文件的实例对象(zipEntry)并接收压缩输出流当中的数据信息
zipOut .setComment("www.baixinle");//对压缩形成后的文件进行注释说明
int temp=0;
while((temp=input.read())!=-1)//通过输入流读取指定文件当中的数据信息并将的到的数据复制到temp上
{
zipOut.write(temp);//将从指定文件当中获取到的数据放入到压缩文件当中去
}
input.close();
zipOut.close();
}
}
下图为目标文件(将要被压缩的文件及其里面的内容):

下面为运行程序之后出现的压缩文件和将要对其进行解压时的情况:
