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

Java利用Apache compress包實現(xiàn)文件夾壓縮成Zip包

這篇具有很好參考價值的文章主要介紹了Java利用Apache compress包實現(xiàn)文件夾壓縮成Zip包。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Apache common提供了很多實用的工具包,下面就說一下如何用compress包來壓縮文件夾。先引入compress,io和lang3這3個工具包:

 <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
            <version>1.9</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.8</version>
        </dependency>
    </dependencies>

這個方法實現(xiàn)了將文件夾下所有的文件壓縮成zip包,并輸出到文件流中,可以直接寫入到文件或提供給前端下載,工具類如下:

import org.apache.commons.compress.archivers.ArchiveException;
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
import org.apache.commons.compress.archivers.zip.Zip64Mode;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.filefilter.TrueFileFilter;
import org.apache.commons.lang3.StringUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collection;

public class ZipUtils {

    /**
     * 壓縮文件夾下的所有文件
     * @param dir          要壓縮的文件夾
     * @param outputStream 輸出壓縮后的文件流
     * @throws IOException      IO異常
     * @throws ArchiveException 壓縮異常
     */
    public static void zip(File dir, OutputStream outputStream) throws IOException, ArchiveException {
        ZipArchiveOutputStream zipOutput = null;
        try {
            zipOutput = (ZipArchiveOutputStream) new ArchiveStreamFactory()
                    .createArchiveOutputStream(ArchiveStreamFactory.ZIP, outputStream);
            zipOutput.setEncoding("utf-8");
            zipOutput.setUseZip64(Zip64Mode.AsNeeded);
            Collection<File> files = FileUtils.listFilesAndDirs(dir, TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE);

            for (File file : files) {
                InputStream in = null;
                try {
                    if (file.getPath().equals(dir.getPath())) {
                        continue;
                    }
                    String relativePath = StringUtils.replace(file.getPath(), dir.getPath() + File.separator, "");
                    ZipArchiveEntry entry = new ZipArchiveEntry(file, relativePath);
                    zipOutput.putArchiveEntry(entry);
                    if (file.isDirectory()) {
                        zipOutput.closeArchiveEntry();
                        continue;
                    }

                    in = new FileInputStream(file);
                    IOUtils.copy(in, zipOutput);
                    zipOutput.closeArchiveEntry();
                } finally {
                    if (in != null) {
                        IOUtils.closeQuietly(in);
                    }
                }
            }
            zipOutput.finish();
        } finally {
            IOUtils.closeQuietly(zipOutput);
        }
    }

    public static void main(String args[]) throws IOException, ArchiveException {
        //要壓縮的文件路徑
        File dir = new File("C:\\data\\data");
        //壓縮后zip包文件路徑
        File dest = new File("C:\\data\\test.zip");
        OutputStream outputStream = new FileOutputStream(dest);
        zip(dir, outputStream);
    }
}

執(zhí)行main函數(shù)跑測試用例,發(fā)現(xiàn)程序?qū)ir路徑下的所有文件已經(jīng)壓縮并輸出zip包。文章來源地址http://www.zghlxwxcb.cn/news/detail-809349.html

到了這里,關于Java利用Apache compress包實現(xiàn)文件夾壓縮成Zip包的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 如何用java給一個文件夾打成壓縮包?

    上面的程序可以將 folderPath 指向的文件夾中所有文件和子文件夾打包成 zipFilePath 所指向的壓縮文件。您只需要將文件夾路徑和壓縮文件路徑替換為實際的值,然后在 Java 環(huán)境下運行該程序即可。 請注意,上面的代碼塊中的 PackageName 是您自己所定義的包名。如果沒有將此類文

    2024年02月10日
    瀏覽(23)
  • 麒麟V10服務器 安裝samba 軟件,并且實現(xiàn)遠程連接,安裝samba服務共享文件夾(壓縮包形式)

    麒麟V10服務器 安裝samba 軟件,并且實現(xiàn)遠程連接,安裝samba服務共享文件夾(壓縮包形式)

    百度網(wǎng)盤 以下是在Linux系統(tǒng)中使用壓縮包方式安裝Samba服務的步驟: 首先,您需要下載Samba軟件包。您可以從Samba官方網(wǎng)站(https://www.samba.org/)下載最新版本的Samba軟件包。 1 上傳 壓縮包到服務器 以上就已經(jīng)安裝完成samba 軟件,并且已經(jīng)啟動,那么如何使用 比如現(xiàn)在有兩個服

    2024年02月01日
    瀏覽(32)
  • 【linux】tar指令壓縮解壓縮文件夾、文件命令詳解

    壓縮當前目錄下文件夾/文件test到test.tar.gz: 解壓縮當前目錄下的file.tar.gz到file: -c: 建立壓縮檔案 -x:解壓 -t:查看內(nèi)容 -r:向壓縮歸檔文件末尾追加文件 -u:更新原壓縮包中的文件 -z:有gzip屬性的 -j:有bz2屬性的 -Z:有compress屬性的 -v:顯示所有過程 -O:將文件解開到標準輸

    2024年02月16日
    瀏覽(94)
  • 簡單的文件夾壓縮ZIP文件

    所用到的公共類 完結!撒花!

    2024年02月10日
    瀏覽(29)
  • Zip壓縮文件夾 + 前端導出

    2024年03月21日
    瀏覽(24)
  • php壓縮一個文件夾,php下載多個圖片

    php壓縮一個文件夾,php下載多個圖片

    把 100/ 這個文件夾,壓縮成 一百.zip 然后得到zip所在的下載url 這個功能,需要PHP去掉禁用函數(shù) shell_exec ?

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

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

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

    2024年02月09日
    瀏覽(29)
  • .git文件夾信息泄露漏洞利用

    .git文件夾信息泄露漏洞利用

    未經(jīng)授權請勿利用文章中的技術 資料對任何計算機系統(tǒng)進行入侵操作。利用此文所提供的信息而造成的直接或間接后果 和損失,均由使用者本人負責。 無意中使用x-ray被動掃描,掃描出了一個git文件信息泄露。 通過手動驗證確實可以下載到.git配置文件(.git文件夾是來自于

    2024年02月15日
    瀏覽(19)
  • Windows環(huán)境下通過 系統(tǒng)定時 執(zhí)行腳本方式 壓縮并備份文件夾 到其他數(shù)據(jù)盤

    Windows環(huán)境下通過 系統(tǒng)定時 執(zhí)行腳本方式 壓縮并備份文件夾 到其他數(shù)據(jù)盤

    壓縮時需要使用7-zip進行調(diào)用,因此根據(jù)自己電腦進行安裝 官網(wǎng):https://www.7-zip.org/ 新建記事本文件,重命名為git_back_up.bat 注意:如果不設置可能會導致定時任務無法執(zhí)行 開“控制面板-管理工具-本地安全策略”,選擇“安全設置-本地策略-安全選項”,在右邊列表中找到“

    2024年02月14日
    瀏覽(32)
  • linux 壓縮webfile文件夾 webfile.tar.gz和webfile.tar的區(qū)別

    在Linux中,你可以使用tar命令來壓縮文件夾。以下是將文件夾壓縮為名為\\\"webfile.tar\\\"的示例命令: 上述命令中,-c選項表示創(chuàng)建新的壓縮文件,-v選項表示在壓縮過程中顯示詳細信息,-f選項指定要創(chuàng)建的壓縮文件的名稱。webfile/是要壓縮的文件夾的路徑。 如果你希望壓縮后的文

    2024年02月09日
    瀏覽(29)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包