/**
* 生成.zip文件(当前方法限定 zip文件输出路径必须与压缩文件在同一路径下)
*
* @param path zip输出路径前缀
* @param compressFileNames 压缩文件名称
* @throws IOException 异常信息
*/
public static String file3Zip(String path, String... compressFileNames) throws IOException {
ZipOutputStream zipOutputStream;
//创建压缩包文件对象 压缩包名称
File file = new File(path + FILE_NAME_ZIP);
//创建压缩包流并创建对应压缩包
zipOutputStream = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
//获取当前文件路径下所有文件数组
File[] files = new File(path).listFiles();
FileInputStream fileInputStream;
byte[] buf = new byte[1024];
String fileName;
int len;
List<String> fileNameList = Arrays.asList(compressFileNames);
if (files != null && files.length > 0) {
//遍历当前文件列表 当前文件名称包含传入的文件名称时 将当前文件进行压缩
for (File excelFile : files) {
fileName = excelFile.getName();
//判断是否包含当前文件
if (fileNameList.contains(fileName)) {
//获取当前文件输入流
fileInputStream = new FileInputStream(excelFile);
//放入压缩zip包中
zipOutputStream.putNextEntry(new ZipEntry(fileName));
//读取文件
while ((len = fileInputStream.read(buf)) > 0) {
zipOutputStream.write(buf, 0, len);
}
//关闭当前压缩包流
zipOutputStream.closeEntry();
//关闭输入流
fileInputStream.close();
}
}
}
//关闭输出流
zipOutputStream.close();
return file.getName();
}
java导出文件放到压缩包里
于 2021-09-23 17:43:33 首次发布