栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java OSS批量下载并压缩为ZIP代码实例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java OSS批量下载并压缩为ZIP代码实例

这篇文章主要介绍了Java OSS批量下载并压缩为ZIP代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下


  public static void downForZip(HttpServletRequest req, HttpServletResponse response,
    List keyList,String fileName ){
    // 创建临时文件
    File zipFile = null;
    try {
        //临时文件名称 zipFile = File.createTempFile("test", ".zip"); FileOutputStream f = new FileOutputStream(zipFile); CheckedOutputStream csum = new CheckedOutputStream(f, new Adler32()); // 用于将数据压缩成Zip文件格式 ZipOutputStream zos = new ZipOutputStream(csum); OSSClient ossClient= OSSUtil.getInstance(); for (String ossFile : keyList) { // 获取Object,返回结果为OSSObject对象 OSSObject ossObject = ossClient.getObject(OSSUtil.BUCKET, ossFile); // 读去Object内容 返回 InputStream inputStream = ossObject.getObjectContent(); // 对于每一个要被存放到压缩包的文件,都必须调用ZipOutputStream对象的putNextEntry()方法,确保压缩包里面文件不同名 String name=ossFile.substring(ossFile.lastIndexOf("/")+1); zos.putNextEntry(new ZipEntry(name)); int bytesRead = 0; // 向压缩文件中输出数据 while ((bytesRead = inputStream.read()) != -1) { zos.write(bytesRead); } inputStream.close(); zos.closeEntry(); // 当前文件写完,定位为写入下一条项目 } zos.close(); String header = req.getHeader("User-Agent").toUpperCase(); if (header.contains("MSIE") || header.contains("TRIDENT") || header.contains("EDGE")) { fileName = URLEncoder.encode(fileName, "utf-8"); //IE下载文件名空格变+号问题 fileName = fileName.replace("+", "%20"); } else { fileName = new String(fileName.getBytes(), "ISO8859-1"); } response.reset(); response.setContentType("text/plain"); response.setContentType("application/octet-stream; charset=utf-8"); response.setHeader("Location", fileName); response.setHeader("Cache-Control", "max-age=0"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName); FileInputStream fis = new FileInputStream(zipFile); BufferedInputStream buff = new BufferedInputStream(fis); BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); byte[] car = new byte[1024]; int l = 0; while (l < zipFile.length()) { int j = buff.read(car, 0, 1024); l += j; out.write(car, 0, j); } // 关闭流 fis.close(); buff.close(); out.close(); ossClient.shutdown(); // 删除临时文件 zipFile.delete(); } catch (IOException e1) { e1.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/137084.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号