//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipUtil {
//压缩目标目录(要带后缀 如‘.zip’)
private String zipFileName;
//压缩源目录 (要压缩的文件夹或文件)
private String sourceFileName;
private FileFilter filter;
//有参构造,需要带着两个必要参数,执行压缩方法即可
public ZipUtil(String zipFileName, String sourceFileName) {
this.zipFileName = zipFileName;
this.sourceFileName = sourceFileName;
}
public void setFileFilter(FileFilter filter) {
this.filter = filter;
}
public void zip() throws Exception {
ZipOutputStream out = null;
FileOutputStream fis = null;
try {
fis = new FileOutputStream(this.zipFileName);
out = new ZipOutputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(out);
File sourceFile = new File(this.sourceFileName);
this.compress(out, bos, sourceFile, sourceFile.getName());
bos.close();
} catch (Exception var12) {
throw var12;
} finally {
try {
out.close();
fis.close();
} catch (Exception var11) {
}
}
}
public void compress(ZipOutputStream out, BufferedOutputStream bos, File sourceFile, String base) throws Exception {
if (this.filter == null || this.filter.accept(sourceFile)) {
if (sourceFile.isDirectory()) {
File[] flist = sourceFile.listFiles();
if (flist.length == 0) {
out.putNextEntry(new ZipEntry(base + "/"));
} else {
for(int i = 0; i < flist.length; ++i) {
this.compress(out, bos, flist[i], base + "/" + flist[i].getName());
}
}
} else {
out.putNextEntry(new ZipEntry(base));
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
fis = new FileInputStream(sourceFile);
bis = new BufferedInputStream(fis);
int tag;
while((tag = bis.read()) != -1) {
out.write(tag);
}
} catch (Exception var15) {
throw var15;
} finally {
try {
bis.close();
fis.close();
} catch (Exception var14) {
}
}
}
}
}
}
java 压缩文件工具类
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。