//file为欲生成的压缩文件,如“C:/batch.zip”
//map中存储欲压缩的各文件的文件路径,如:'C:/file1’,‘C:/file2’,‘…
public void makeZipFile(File file,Map<Integer,String> map) throws Exception{
if(null==map||map.size()==0){
throw new IOException("文件列表map为空");
}
Collection<String> collection = map.values();
ZipOutputStream zout=new ZipOutputStream(new OutputStream(file));
for(String fileName:collection){
File f = new File(fileName);
if (!f.exists()) {
throw new RecordPreparedException("文件尚未准备好!");
}//确定被压缩的文件存在。
FileInputStream in = new FileInputStream(f);
ZipEntry z=new ZipEntry(f.getName());//压缩文件各文件的文件名在此设置。
zout.putNextEntry(z);
byte[] b =new byte[1024];
int len = 0;
while((len = in.read(b)) != -1) {
zout.write(b,0,len);
}
in.close();
zout.closeEntry();
}
zout.close();
}