在项目中我们常常会需要把文件进行压缩处理,Java中压缩文件的方法有很多种,我看了很多资料,网上很多压缩的方法都是使用到了第三方的jar包,个人感觉这样很麻烦,于是找了很久,找到了一个不需要任何第三方的jar包就能进行文件压缩的方法,在这里分享给大家,希望能帮到有需要的小伙伴。。。。
/**
*
* @param zipFileName 压缩后的zip文件名称
* @param inputFile 需要压缩的文件
* @throws Exception
*/
private static void zip(String zipFileName, File inputFile) throws Exception {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
zipFileName));
BufferedOutputStream bo = new BufferedOutputStream(out);
zip(out, inputFile, inputFile.getName(), bo);
bo.close();
out.close();
}
private static void zip(ZipOutputStream out, File f, String base,
BufferedOutputStream bo) throws Exception {
if (f.isDirectory()) {
File[] fl = f.listFiles();
if (fl.length == 0) {
out.putNextEntry(new ZipEntry(base + "/"));
}
for (int i = 0; i < fl.length; i++) {
zip(out, fl[i], base + "/" + fl[i].getName(), bo);
}
} else {
out.putNextEntry(new ZipEntry(base));
FileInputStream in = new FileInputStream(f);
BufferedInputStream bi = new BufferedInputStream(in);
int b;
while ((b = bi.read()) != -1) {
bo.write(b);
}
bo.flush();
bi.close();
in.close();
}
}
使用方法相当简单,代码如下
zip("E:\\filecopy\\app1.zip",new File("E:\\filecopy\\app"));
这样就可以通过jdk自带的方法进行文件的压缩处理,是不是很方便呢?有兴趣的小伙伴可以试试看。。。