java 文件打包工具(ZIP格式打包)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 文件打包工具(ZIP格式打包)相关的知识,希望对你有一定的参考价值。
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
*
* @ClassName: CompressedFileUtil
* @Description: 文件打包工具(zip格式打包)
* @author ex-WANGZHAO926
* @date 2017年8月26日 下午4:44:09
*/
public class CompressedFileUtil {
/**
* @Title: compressedFile
* @Description: 将源文件/文件夹生成指定格式的压缩文件,格式zip
* @param resourcesPath 源文件/文件夹
* @param targetPath 目的压缩文件保存路径
* @return 压缩文件路径
* @throws Exception
* @throws
*/
public static String compressedFile(String resourcesPath,String targetPath) throws Exception{
File resourcesFile = new File(resourcesPath); //源文件
File targetFile = new File(targetPath); //目的
//如果目的路径不存在,则新建
if(!targetFile.exists()){
targetFile.mkdirs();
}
String targetName = resourcesFile.getName()+".zip"; //目的压缩文件名
FileOutputStream outputStream = new FileOutputStream(targetPath+"/"+targetName);
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(outputStream));
createCompressedFile(out, resourcesFile, "");
out.close();
return targetPath+"\\"+targetName;
}
/**
* @desc 生成压缩文件。
* 如果是文件夹,则使用递归,进行文件遍历、压缩
* 如果是文件,直接压缩
* @param out 输出流
* @param file 目标文件
* @return void
* @throws Exception
*/
private static void createCompressedFile(ZipOutputStream out,File file,String dir) throws Exception{
//如果当前的是文件夹,则进行进一步处理
if(file.isDirectory()){
//得到文件列表信息
File[] files = file.listFiles();
//将文件夹添加到下一级打包目录
out.putNextEntry(new ZipEntry(dir+"/"));
dir = dir.length() == 0 ? "" : dir +"/";
//循环将文件夹中的文件打包
for(int i = 0 ; i < files.length ; i++){
createCompressedFile(out, files[i], dir + files[i].getName()); //递归处理
}
}
else{ //当前的是文件,打包处理
//文件输入流
FileInputStream fis = new FileInputStream(file);
out.putNextEntry(new ZipEntry(dir));
//进行写操作
int j = 0;
byte[] buffer = new byte[1024];
while((j = fis.read(buffer)) > 0){
out.write(buffer,0,j);
}
//关闭输入流
fis.close();
}
}
public static void main(String[] args){
try {
CompressedFileUtil.compressedFile("D:\\Users\\EX-WANGHUACHI001\\java\\demo\\poiDemoFile\\3.csv", "D:\\Users\\EX-WANGHUACHI001\\java\\demo\\poiDemoFile");
System.out.println("压缩文件已经生成...");
} catch (Exception e) {
System.out.println("压缩文件生成失败...");
e.printStackTrace();
}
}
}
以上是关于java 文件打包工具(ZIP格式打包)的主要内容,如果未能解决你的问题,请参考以下文章