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關閉,意思就是將多個文件寫入到同一個輸出流里面