多个文件打包压缩成.zip文件
List<String> sourceFilePaths = new ArrayList<String>(); //需要压缩的文件目录列表
//指定打包到哪个zip(绝对路径)
String zipTempFilePath = fileurl+id+".zip";
//调用压缩
int s = 0;
s = Filecompression.compress(sourceFilePaths, zipTempFilePath,false);
log.info("成功压缩"+s+"个文件",zipTempFilePath);
return zipTempFilePath;//返回压缩后的路径
解压.zip文件
public static void main(String[] args) {
String zipFileName = "C:\\Users\\Public\\Documents\\bom\\1234.zip";//解压文件
String outputFolder = "C:\\Users\\Public\\Documents\\bom\\12345";//解压后路径
try (ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(zipFileName))) {
// 解压缩文件
unzipFiles(zipInputStream, outputFolder);
System.out.println("Files unzipped successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void unzipFiles(ZipInputStream zipInputStream, String outputFolder) throws IOException {
byte[] buffer = new byte[1024];
ZipEntry entry;
while ((entry = zipInputStream.getNextEntry()) != null) {
String fileName = entry.getName();
File outputFile = new File(outputFolder + "/" + fileName);
// 创建文件夹
if (entry.isDirectory()) {
outputFile.mkdirs();
} else {
// 创建文件并写入内容
new File(outputFile.getParent()).mkdirs();
try (FileOutputStream fileOutputStream = new FileOutputStream(outputFile)) {
int bytesRead;
while ((bytesRead = zipInputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
}
}
}
zipInputStream.closeEntry();
}
}