近两天在开发过程中碰到一个需求,需要将服务器上的多个文件打包为ZIP,并进行下载。现将打包核心代码贴出来,以便相互交流:
/**
*
* @param srcfile 需要打包为zip的文件集合
* @param zipfile 创建的zip文件
*/
public void zipFiles(List<File> srcfile, File zipfile) {
byte[] buf = new byte[1024];
try {
// 创建zip文件
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));
// 压缩文件
for (int i = 0; i < srcfile.size(); i++) {
File file = srcfile.get(i);
FileInputStream in = new FileInputStream(file);
// Add ZIP entry to output stream.
ZipEntry zipEntry=new ZipEntry(file.getName());
//解决Linux下,中文文件名乱码
zipEntry.setUnixMode(644);