将多个文件压缩成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关闭,意思就是将多个文件写入到同一个输出流里面


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM