java使用ZipOutputStream批量壓縮文件,並將文件分別放置不一樣文件夾壓縮

package cn.cnnho.backstage.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.*;
import java.io.*;
public class Test {
/**
* 壓縮一個文件到一個zip
* @param in 輸入的文件
* @param out 輸出的zip名
* @param outEntry zip中的條目名
*/
public static void zip(String in,ZipOutputStream out,String outEntry) {
File inf = new File(in) ;
FileInputStream ins;
try {
if(inf.exists()){
ins = new FileInputStream(inf);java

//文件夾根據需求動態填充
out.putNextEntry(new ZipEntry("文件夾"+"/"+outEntry));
int b ;
while ((b = ins.read()) != -1) {
out.write(b);
}
ins.close();
}else{
//按照項目的須要在沒有的時候給予提示吧。
System.out.println("系統找不到指定文件:"+in);
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
} catch (Exception e3) {
e3.printStackTrace();
}
}

/**
*
* @param out 輸出的zip名
* @param in 輸入的目錄
* @param inEntrys 輸入的條目集合
*/
public static void zip(String out,String in,List<String> inEntrys) {
try {
OutputStream zipFileName_fileOutputStream = new FileOutputStream(out);
ZipOutputStream zipOutputStream = new ZipOutputStream(zipFileName_fileOutputStream);
for(String inEntry:inEntrys){
zip(in+inEntry,zipOutputStream,inEntry);
}
zipOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {

List<String> inEntrys=new ArrayList<String>();
inEntrys.add("a.txt");
inEntrys.add("b.txt");
//能夠加一個實際沒有的文件試試
inEntrys.add("c.txt");

zip("d:\\a\\a3.zip","d:\\a\\",inEntrys);

}
} ip

相關文章
相關標籤/搜索