将多个文件压缩成zip文件

package Tools;

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipOutputStreamDemo {
public static void main(String args[]) throws IOException {
//定义要压缩的文件 也就是说在D盘里有个 demo.txt 的文件(必须要有,否者会有异常,实际应用中可判断);
List<String>list=new ArrayList<String>();
list.add("D:\\wondersgroup\\work\\share\\" + "tb_mjz_js_4th_lsb_12121_qwqwq.txt");
list.add("D:\\wondersgroup\\work\\share\\" + "tb_mjz_js_4th_lsb_12121_qwqwq -2.txt");
//定义压缩文件的名称
File zipFile = new File("D:\\wondersgroup\\work\\share\\" + "tb_mjz_js_4th_lsb_12121_qwqwq.zip");
InputStream input=null;
//定义压缩输出流
ZipOutputStream zipOut = null;
//实例化压缩输出流,并制定压缩文件的输出路径 就是D盘下,名字叫 demo.zip
zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
for(String s:list){
File file = new File(s);
//定义输入文件流
input = new FileInputStream(file);
zipOut.putNextEntry(new ZipEntry(file.getName()));
//设置注释
zipOut.setComment("www.demo.com");
int temp = 0;
while((temp = input.read()) != -1) {
zipOut.write(temp);
}
input.close();
}
zipOut.close();

}
}


分析:将需要压缩的多个文件的文件名放在一个list里面,然后对list进行循环,每次循环都新建一个input,写入后将input关闭,
循环完毕后才将输出流ZipOut关闭,意思就是将多个文件写入到同一个输出流里面

猜你喜欢

转载自www.cnblogs.com/yzml/p/12463597.html