最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java OSS批量下載并壓縮為ZIP代碼實例

 更新時間:2019年09月10日 14:57:23   作者:呵呵噠小碼農(nóng)  
這篇文章主要介紹了Java OSS批量下載并壓縮為ZIP代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了Java OSS批量下載并壓縮為ZIP代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

/**
   * 批量下載為zip
   * @param req
   * @param response
   * @param keyList oss文件路徑集合
   * @param fileName 下載出來的zip文件名(一般以合同名命名) 如:測試合同,zip
   */
  public static void downForZip(HttpServletRequest req, HttpServletResponse response,
                  List<String> keyList,String fileName ){
    // 創(chuàng)建臨時文件
    File zipFile = null;
    try {<br data-filtered="filtered">        //臨時文件名稱
      zipFile = File.createTempFile("test", ".zip");
 
      FileOutputStream f = new FileOutputStream(zipFile);
      /**
       * 作用是為任何OutputStream產(chǎn)生校驗和
       * 第一個參數(shù)是制定產(chǎn)生校驗和的輸出流,第二個參數(shù)是指定Checksum的類型 (Adler32(較快)和CRC32兩種)
       */
      CheckedOutputStream csum = new CheckedOutputStream(f, new Adler32());
      // 用于將數(shù)據(jù)壓縮成Zip文件格式
      ZipOutputStream zos = new ZipOutputStream(csum);
      OSSClient ossClient= OSSUtil.getInstance();
      for (String ossFile : keyList) {
        // 獲取Object,返回結(jié)果為OSSObject對象
 
        OSSObject ossObject = ossClient.getObject(OSSUtil.BUCKET, ossFile);
        // 讀去Object內(nèi)容 返回
        InputStream inputStream = ossObject.getObjectContent();
        // 對于每一個要被存放到壓縮包的文件,都必須調(diào)用ZipOutputStream對象的putNextEntry()方法,確保壓縮包里面文件不同名
        String name=ossFile.substring(ossFile.lastIndexOf("/")+1);
        zos.putNextEntry(new ZipEntry(name));
        int bytesRead = 0;
        // 向壓縮文件中輸出數(shù)據(jù)
        while ((bytesRead = inputStream.read()) != -1) {
          zos.write(bytesRead);
        }
        inputStream.close();
        zos.closeEntry(); // 當(dāng)前文件寫完,定位為寫入下一條項目
      }
      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);
      }
      // 關(guān)閉流
      fis.close();
      buff.close();
      out.close();
      ossClient.shutdown();
      // 刪除臨時文件
      zipFile.delete();
    } catch (IOException e1) {
      e1.printStackTrace();
    }catch (Exception e) {
      e.printStackTrace();
    }
  }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring不能注入Static變量的原因及Spring注入靜態(tài)變量

    Spring不能注入Static變量的原因及Spring注入靜態(tài)變量

    這篇文章主要介紹了Spring不能注入Static變量的原因及Spring注入靜態(tài)變量,需要的朋友可以參考下
    2016-01-01
  • Spring中的事務(wù)管理如何配置

    Spring中的事務(wù)管理如何配置

    這篇文章主要介紹了spring中的事務(wù)管理如何配置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot整合redis中的JSON序列化文件夾操作小結(jié)

    SpringBoot整合redis中的JSON序列化文件夾操作小結(jié)

    在我們?nèi)粘5捻椖块_發(fā)中,使用redis作為緩存,來提高系統(tǒng)訪問速度和緩解系統(tǒng)壓力,在使用中遇到幾個問題,本文給大家詳細(xì)總結(jié)下,對SpringBoot整合redis?JSON序列化相關(guān)知識感興趣的朋友一起看看吧
    2022-02-02
  • java設(shè)計日歷可視化的詳細(xì)步驟記錄

    java設(shè)計日歷可視化的詳細(xì)步驟記錄

    這篇文章主要給大家介紹了關(guān)于java設(shè)計日歷可視化的相關(guān)資料,通過自定義的CircleLabel類來突出顯示今天的日期,并使用BorderLayout布局管理窗口組件,文章詳細(xì)描述了各個類和方法的設(shè)計思想和實現(xiàn)邏輯,需要的朋友可以參考下
    2024-12-12
  • Java實現(xiàn)的可選擇及拖拽圖片的面板功能【基于swing組件】

    Java實現(xiàn)的可選擇及拖拽圖片的面板功能【基于swing組件】

    這篇文章主要介紹了Java實現(xiàn)的可選擇及拖拽圖片的面板功能,涉及java基于swing組件選擇與操作圖片元素的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • pagehelper踩坑記之分頁亂套問題解決

    pagehelper踩坑記之分頁亂套問題解決

    這篇文章主要為大家介紹了pagehelper踩坑記之分頁亂套問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 打開IDEA配置Spring項目時發(fā)現(xiàn)沒有選擇java?1.8的選項解決方案

    打開IDEA配置Spring項目時發(fā)現(xiàn)沒有選擇java?1.8的選項解決方案

    這篇文章主要介紹了打開IDEA配置Spring項目時發(fā)現(xiàn)沒有選擇java?1.8的選項的解決方案,文中通過代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者idea具有一定的參考借鑒價值,需要的朋友可以參考下
    2025-03-03
  • 在Java中使用Moshi?JSON庫的方法詳解

    在Java中使用Moshi?JSON庫的方法詳解

    Moshi?是一個可用于?Java?與?Kotlin?的?JSON?序列化與反序列化庫,其主要使用?Kotlin?編寫,本文以樣例代碼的方式來演示該庫在?Java?中的使用,需要的朋友可以參考下
    2024-04-04
  • Java實時監(jiān)控日志文件并輸出的方法詳解

    Java實時監(jiān)控日志文件并輸出的方法詳解

    這篇文章主要給大家介紹了關(guān)于Java實時監(jiān)控日志文件并輸出的方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • Java控制流程示例代碼詳解

    Java控制流程示例代碼詳解

    這篇文章主要介紹了Java控制流程,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03

最新評論

郴州市| 伊川县| 上虞市| 吉林省| 陈巴尔虎旗| 姜堰市| 称多县| 宝兴县| 黔东| 临城县| 佛冈县| 灵丘县| 家居| 伽师县| 普陀区| 上杭县| 彰化县| 同心县| 岳普湖县| 天台县| 东平县| 长沙县| 宁明县| 盐源县| 通许县| 平阳县| 泰来县| 洛隆县| 沽源县| 兴山县| 嘉义市| 铅山县| 南江县| 张家川| 龙岩市| 青冈县| 廉江市| 沁源县| 兰考县| 内丘县| 贵南县|