java将文件打包为zip

来源:互联网 发布:怎么导入mysql数据库 编辑:程序博客网 时间:2024/06/01 09:57

由于某些业务需要,某个下载按钮需要下载多个文件,并打包为zip,本人只好查各种资料进行实现

//打包成为ZIP文件public static ByteArrayOutputStream mergeToZip(Map<String, File> fileMap) {//合并输出为一个压缩包ByteArrayOutputStream out = new ByteArrayOutputStream();try {ZipArchiveOutputStream zip = new ZipArchiveOutputStream(out);Iterator<Map.Entry<String, File>> set = fileMap.entrySet().iterator();while (set.hasNext()) {Map.Entry<String, File> entry = set.next();File file = entry.getValue();ZipArchiveEntry zipEntry = new ZipArchiveEntry(entry.getKey());zipEntry.setSize(file.length());zip.putArchiveEntry(zipEntry);FileInputStream in = new FileInputStream(file);IOUtils.copy(in, zip);IOUtils.closeQuietly(in);FileUtils.deleteQuietly(file);}zip.closeArchiveEntry();IOUtils.closeQuietly(zip);IOUtils.closeQuietly(out);} catch (Exception e) {e.printStackTrace();}return out;}
说明:fileMap中的key为被压缩文件的文件名,value为被压缩的文件

依赖的jar包 commons-compress-1.14.jar






原创粉丝点击