国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java 批量下載文件 打包成zip包

這篇具有很好參考價值的文章主要介紹了java 批量下載文件 打包成zip包。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  1. 創(chuàng)建DownLoadUrlStream承載數(shù)據(jù)
import lombok.Data;
import java.io.InputStream;

@Data
public class DownLoadUrlStream {
    //文件地址 比如/123/234/1.txt
    private String url;
    //文件流
    private InputStream stream;

}
  1. 創(chuàng)建工具類,進行zip包壓縮

import com.valid.util.view.DownLoadUrlStream;
import com.valid.util.view.DownLoadUrlString;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@Component
public class DownloadUtils {
	/**
     * 
     * @param downLoadUrlStreams 文件信息 地址 流
     * @param zipName 壓縮包名稱
     * @param response
     * @throws IOException
     */
    public void downloadFolder(List<DownLoadUrlStream> downLoadUrlStreams,String zipName, HttpServletResponse response) throws IOException {

        response.setContentType("application/octet-stream");

        response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(zipName,"UTF-8")  + "\"");
        Set<String> paths = new HashSet<>(); // 用于記錄已經(jīng)添加到壓縮文件中的目錄

        try {
            ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream());
            for (DownLoadUrlStream file : downLoadUrlStreams) {
                String virtualPath = file.getUrl().substring(1);
                String[] pathArray = virtualPath.split("/");
                //構(gòu)建文件的目錄結(jié)構(gòu)
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < pathArray.length - 1; i++) {
                    sb.append(pathArray[i]).append("/");
                    String folderPath = sb.toString();
                    if (!paths.contains(folderPath)) { // 如果該目錄還未被添加到壓縮文件中,則添加目錄
                        ZipEntry folderEntry = new ZipEntry(folderPath);
                        zipOut.putNextEntry(folderEntry);
                        zipOut.closeEntry();
                        paths.add(folderPath); // 將新添加的目錄記錄到集合中
                    }
                }
                ZipEntry entry = new ZipEntry(virtualPath);
                zipOut.putNextEntry(entry);
                //將文件流寫入文件中
                InputStream inputStream =  file.getStream();
                byte[] buffer = new byte[1024];
                int len;
                while ((len = inputStream.read(buffer)) > 0) {
                    zipOut.write(buffer, 0, len);
                }
                inputStream.close();
                zipOut.closeEntry();
            }
            zipOut.flush();
            zipOut.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
  }
   
  1. 封裝數(shù)據(jù),調(diào)用方法即可

文章來源地址http://www.zghlxwxcb.cn/news/detail-655302.html

到了這里,關(guān)于java 批量下載文件 打包成zip包的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Linux中文件的打包壓縮、解壓,下載到本地——zip,tar指令等

    Linux中文件的打包壓縮、解壓,下載到本地——zip,tar指令等

    目錄 1 .zip后綴名: ? ? ? ? 1.1 zip指令 ? ? ? ? 1.2 unzip指令 2 .tar后綴名 3. sz 指令 4. rz 指令 5. scp指令 語法:zip [namefile.zip]? [namefile]... 功能:將目錄或者文件壓縮成zip格式 常用選項: ? ? ? ? -r : 遞歸處理,將指定目錄下的所有文件和子目錄一并處理。 語法:unzip [namefil

    2024年01月24日
    瀏覽(54)
  • 使用Java打包Zip文件

    在項目中可能會遇到,下載文件的情況,下載文件還是比較好處理的 比較簡單的方式就是我們直接寫入OutPutstream,網(wǎng)上會有很所類似的教程。 也可以使用一些現(xiàn)成的工具類。 那么當我們遇到了需要下載文件夾的時候,我們不得不遍歷所有的文件,去逐個的下載文件,這個時

    2024年02月14日
    瀏覽(15)
  • Java實現(xiàn)文件下載zip包單文件等

    摘要 本次主要記錄將多個文件打包到zip壓縮包并完成下載;留個代碼方便以后用到了ctrl c v 我使用的是 hutool工具包 的二次封裝,下面直接列出工具類即可,具體API不再詳述,需要詳細了解的可以自行百度 注意: 1 工具類中文件參數(shù)都是以File對象接收的,如果你是遠程URL下載文件的

    2024年02月11日
    瀏覽(23)
  • 根據(jù)若依系統(tǒng)+minio實現(xiàn)批量下載附件并自動壓縮成zip

    根據(jù)若依系統(tǒng)+minio實現(xiàn)批量下載附件并自動壓縮成zip

    效果實現(xiàn): ? 分割!!!! 以下代碼參考于 http://t.csdn.cn/4dUmDwg 話不多說 直接從后端開始 0.首先是pom依賴 1.后端Controller ids和tableName為我業(yè)務(wù)需要(主要是查詢數(shù)據(jù)庫的附件表) 2.Service實現(xiàn)層 需要各位自己搜索minio關(guān)于下載的代碼 也就是獲取圖片的inputStream流(因為各自代碼邏輯不同

    2024年02月09日
    瀏覽(45)
  • 【Java】對Minio指定Bucket大量文件的批量下載與本地文件夾的批量上傳

    【Java】對Minio指定Bucket大量文件的批量下載與本地文件夾的批量上傳

    需要批量下載一個bucket下的內(nèi)容,bucket下文件有19GB+,且文件夾結(jié)構(gòu)復(fù)雜,使用官方的Console無法完成這么大量文件的下載,而且也不支持文件夾的分享,所以自己寫個工具下載,順便把上傳的也寫了。 使用官方的打包下載,由于文件太多,一直轉(zhuǎn),而且session一失效,或者刷

    2024年02月09日
    瀏覽(37)
  • 從gitlab打包下載下來的zip包的代碼之后,沒有看到git,如何提交代碼呢?

    如果你從GitLab下載了一個ZIP包,并且在本地解壓后沒有Git版本控制信息(.git文件夾),這意味著你只獲得了代碼的快照,而不是一個完整的Git倉庫。在這種情況下,你無法直接使用Git來提交代碼,因為沒有Git倉庫來跟蹤更改歷史和管理提交。 如果你想將這些代碼提交到一個

    2024年01月24日
    瀏覽(25)
  • [python]批量解壓文件夾下所有壓縮包(rar、zip、7z)

    [python]批量解壓文件夾下所有壓縮包(rar、zip、7z)

    ????????在文件夾作用包含許多壓縮包的時候,解壓起來就很費時費力,尤其是在文件夾還存在嵌套的情況下,解壓起來就更麻煩了。Franpper今天給大家?guī)磉f歸遍歷指定路徑下的所有文件和文件夾,批量解壓所有壓縮包的方法,幫大家一鍵解壓。 ? ? ? ? 常見的壓縮包格

    2024年02月09日
    瀏覽(29)
  • 前端js下載zip文件異常問題解決

    前端js下載zip文件異常問題解決

    目錄 一,本文解決問題如下 二,原下載代碼 1,ajax get 下載文件 2,下載異常圖: 三,成功下載的 1,?JQuery?實現(xiàn)文件下載xhr 2,圖例 引言: 本人使用的ajax 下載,由于下載CSV,文本之類的沒有問題,下載zip是出現(xiàn)各種問題。發(fā)現(xiàn)是設(shè)置responseType:\\\"blob\\\"沒生效,項目中又沒有

    2024年02月09日
    瀏覽(19)
  • Unity 下載Zip壓縮文件并且解壓縮

    1、Unity下載Zip壓縮文件主要使用UnityWebRequest類。 可以參考以下方法: 其中這里我還用個while循環(huán)寫了個下載進度條。? 2、解壓Zip壓縮文件用到的System.IO.Compression下的ZipFile.OpenRead()方法。 具體可以參考以下代碼:

    2024年02月03日
    瀏覽(19)
  • 前端調(diào)接口下載(導(dǎo)出)后端返回.zip壓縮文件流(的坑?。? decoding=

    前端調(diào)接口下載(導(dǎo)出)后端返回.zip壓縮文件流(的坑!)

    前言:基于vue2+element-ui的一個后臺管理系統(tǒng),需求評審要加一個導(dǎo)入導(dǎo)出文件的功能,由于可能導(dǎo)出的數(shù)據(jù)量過大(幾十萬條數(shù)據(jù)),下載時間過長,所以用.zip壓縮文件替代excel文件 本人以前也做過導(dǎo)出文件的功能,但是用的方法是后端處理數(shù)據(jù)然后放到另一個服務(wù)器上,前

    2024年02月03日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包