public synchronized static ByteArrayOutputStream zip(Map<String, byte[]> map)
throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
ZipEntry zipEntry;
for (String key : map.keySet()) {
zipEntry = new ZipEntry(key);
zipEntry.setSize(map.get(key).length);
zipEntry.setTime(System.currentTimeMillis());
zos.putNextEntry(zipEntry);
zos.write(map.get(key));
zos.flush();
}
zos.close();
return baos;
}
-
ZipEntry:This class is used to
represent a ZIP file entry.
-
ZipFile:This class is used to
read entries from a zip file.
-
ZipInputStream:This class
implements an input stream filter for reading files in the ZIP file
format.
-
ZipOutputStream:This class
implements an output stream filter for writing files in the ZIP file
format.
现在我们了解一下读写Zip文件的基本流程。当解压时,从该Zip文件输入流中读取出ZipEntry,然后根据ZipEntry的信息,读取对应文件的相应字节。代码实现如下:
public synchronized static Map<String, byte[]> unZip(InputStream is)
throws IOException {
Map<String, byte[]> result = new HashMap<String, byte[]>();
byte[] buf;
ZipInputStream zis = new ZipInputStream(is);
ZipEntry zipEntry = zis.getNextEntry();
while (zipEntry != null) {
if (zipEntry.isDirectory()) {
zipEntry = zis.getNextEntry();
continue;
} else {
buf = new byte[(int) zipEntry.getSize()];
zis.read(buf, 0, (int) zipEntry.getSize());
result.put(zipEntry.getName(), buf);
zipEntry = zis.getNextEntry();
}
}
return result;
}
压缩操作与解压操作差不多,先将文件字节流组装成ZipEntry,然后把ZipEntry加入到输出流中即可。代码实现如下:
至此,使用上面的两个方法就能完成基本的
Zip
文件压缩和解压缩处理了;该方法只适合处理
Zip
格式的文件,对于
GZip
格式的文件,我相信你也能轻松搞定了:)。
分享到:
相关推荐
jquery把图片文件打包成ZIP文件提供下载,不用再后台生成储存
Java根据Url把多个文件下载到指定的文件夹目录,然后再将文件夹目录打包成zip导出,包括子目录也可以打包,有个简单的导出html页面,点击导出按钮下载zip。
应用java来压缩需要打包的文件,在系统管理中将毛哥路径或者某个文件夹压缩成zip包
asp文件打包成zip组件
java中将多个excel打包成zip文件下载.rar
主要为大家详细介绍了java后台批量下载文件并压缩成zip下载的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
生成excel并打包成zip文件,包含主要的生成类和如何打包的代码,主要是嵌套的关系
net打包文件 net 压缩文件 使用net内置方法压缩文件
java 实现指定目录下的文件打包zip格式 并指定存放zip包
3、可以指定文件都为最后生成为zip文件下载,且删除源文件。 1、压缩文件或者目录(只是压缩不删除):zipFileOrDirectory 2、程序自动判断如果是文件那么就是源文件下载,如果是文件夹那么就先 压缩然后再下载,...
本资源包括打包的详细代码,和需要的压缩类库,下载后就可以直接用(有详细的用法)。可以打包单个文件,也可同时打包多个文件,非常实用。
php解压rar文件 打包zip文件源码 附带windows下dll文件
.net多文件打包下载,下载前将多个文件打包,重新命名压缩文件名字。代码重用性好
JAVAWEB项目,实现将服务器文件打包成.zip文件,然后再下载到本地上。
线上环境亲测可用,另外还包含了本地路径文件以及图片的压缩打包,实际项目中使用,简单易懂,如有不懂之处可以随时联系我
java 打包 目录 文件 zip java 打包 目录 文件 zip java 打包 目录 文件 zip
* 打包下载网络文件到服务器 * @param ZipNetEntryList :待下载压缩的文件集合 * @param fileDiskPath :下载保存磁盘路径 * @param groupDir 组织
C# zip压缩文件的打包与解压缩,代码完整,可以运行!
php打包压缩文件夹和子目录代码。传到根目录就可以直接使用,超级简单,非常实用。
计算机专业毕业设计通用文件打包 计算机专业毕业设计通用文件打包 计算机专业毕业设计通用文件打包 计算机专业毕业设计通用文件打包 计算机专业毕业设计通用文件打包 计算机专业毕业设计通用文件打包 计算机...