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

java使用ZipInputStream實現(xiàn)讀取和寫入zip文件

 更新時間:2023年11月06日 10:23:18   作者:bug生產者  
zip文檔可以以壓縮格式存儲一個或多個文件,本文主要為大家詳細介紹了java如何使用ZipInputStream讀取Zip文檔與寫入,需要的小伙伴可以參考下

zip壓縮

zip文檔可以以壓縮格式存儲一個或多個文件,可以使用ZipInputStream讀取Zip文檔,使用ZipOutputStream來寫入到Zip文件中

<!-- more -->

ZipInputStream讀取

ZipInputStream zin = new ZipInputStream(in);
ZipEntry ze;
// getNextEntry返回描述這個項的ZipEntry的對象
while ((ze = zin.getNextEntry()) != null) {
    // getInputStream獲取用于讀取該項的輸入流
        BufferedReader br = new BufferedReader(
                new InputStreamReader(zf.getInputStream(ze), charset));
  // 業(yè)務邏輯 todo
        br.close();
  // closeEntry關閉當前打開的項
    zin.closeEntry();
}
zin.close();

ZipOutputStream寫入

ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile));

File fileWillZip = new File(dir);

if (fileWillZip.exists()) {
    // 需要壓縮的文件是文件夾。需要遞歸進行壓縮
    if(fileWillZip.isDirectory()){
        compressZip(zipOut,fileWillZip,fileWillZip.getName());
    } else { // 是文件,直接壓縮
        zip(zipOut,fileWillZip,dir);
    }
}
zipOut.closeEntry();
zipOut.close();



private void compressZip(ZipOutputStream zipOutput, File file, String suffixpath) {
        File[] listFiles = file.listFiles();// 列出所有的文件
        for(File fi : listFiles){
            if(fi.isDirectory()){ // 如果是文件夾,繼續(xù)遞歸
                if(suffixpath.equals("")){
                    compressZip(zipOutput, fi, fi.getName());
                }else{
                    compressZip(zipOutput, fi, suffixpath + File.separator + fi.getName());
                }
            }else{
                zip(zipOutput, fi, suffixpath);
            }
        }
    }

    public void zip(ZipOutputStream zipOutput, File file, String suffixpath) {
        try {
          // 創(chuàng)建ZipEntry對象
            ZipEntry zEntry = null;
            if(suffixpath.equals("")){
                zEntry = new ZipEntry(file.getName());
            }else{
                zEntry = new ZipEntry(suffixpath + File.separator + file.getName());
            }
          // putNextEntry將給定的ZipEntry中的信息寫出到輸出流,并定位用于寫出數(shù)據(jù)的流,然后這些數(shù)據(jù)可以通過write方法寫出到這個輸出流中
            zipOutput.putNextEntry(zEntry);
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
            byte[] buffer = new byte[1024];
            int read = 0;
            while((read = bis.read(buffer)) != -1){
                zipOutput.write(buffer, 0, read);
            }
            bis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

到此這篇關于java使用ZipInputStream實現(xiàn)讀取和寫入zip文件的文章就介紹到這了,更多相關java ZipInputStream內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java中將base64編碼字符串轉換為圖片的代碼

    Java中將base64編碼字符串轉換為圖片的代碼

    這篇文章主要介紹了Java中將base64編碼字符串轉換為圖片,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Spring?Security自定義認證邏輯實例詳解

    Spring?Security自定義認證邏輯實例詳解

    這篇文章主要給大家介紹了關于Spring?Security自定義認證邏輯的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • ReentrantLock源碼詳解--公平鎖、非公平鎖

    ReentrantLock源碼詳解--公平鎖、非公平鎖

    ReentrantLock重入鎖,是實現(xiàn)Lock接口的一個類,也是在實際編程中使用頻率很高的一個鎖,表示能夠對共享資源能夠重復加鎖,即當前線程獲取該鎖再次獲取不會被阻塞。下面我們來深入了解一下它吧
    2019-06-06
  • java實現(xiàn)大文本文件拆分

    java實現(xiàn)大文本文件拆分

    這篇文章主要為大家詳細介紹了java實現(xiàn)大文本文件拆分,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • spring boot actuator監(jiān)控超詳細教程

    spring boot actuator監(jiān)控超詳細教程

    Spring Boot Actuator就是一款可以幫助你監(jiān)控系統(tǒng)數(shù)據(jù)的框架,其可以監(jiān)控很多很多的系統(tǒng)數(shù)據(jù),接下來通過本文給大家介紹spring boot actuator監(jiān)控超詳細教程,感興趣的朋友一起看看吧
    2021-10-10
  • Java8 用Lambda表達式給List集合排序的實現(xiàn)

    Java8 用Lambda表達式給List集合排序的實現(xiàn)

    這篇文章主要介紹了Java8 用Lambda表達式給List集合排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Mybatis plus邏輯刪除失敗的BUG操作

    Mybatis plus邏輯刪除失敗的BUG操作

    這篇文章主要介紹了Mybatis plus邏輯刪除失敗的BUG操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • webuploader 實現(xiàn)圖片批量上傳功能附實例代碼

    webuploader 實現(xiàn)圖片批量上傳功能附實例代碼

    這篇文章主要介紹了webuploader 實現(xiàn)圖片批量上傳功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-11-11
  • springboot集成activiti全過程

    springboot集成activiti全過程

    文章介紹了在Spring Boot中集成Activiti時的配置和使用方法,包括在`pom.xml`中添加依賴、將`activiti.cfg.xml`文件放在`resources`目錄下、以及配置各種監(jiān)聽器來監(jiān)聽流程的不同階段
    2025-10-10
  • Java源碼刨析之ArrayDeque

    Java源碼刨析之ArrayDeque

    ArrayDeque是Deque接口的一個實現(xiàn),使用了可變數(shù)組,所以沒有容量上的限制。同時,?ArrayDeque是線程不安全的,在沒有外部同步的情況下,不能再多線程環(huán)境下使用<BR>
    2022-07-07

最新評論

正宁县| 五大连池市| 中江县| 天水市| 乐亭县| 兴国县| 黎川县| 徐州市| 手机| 建平县| 巴里| 锡林郭勒盟| 宝坻区| 唐山市| 涟源市| 沙洋县| 宜良县| 灌云县| 平昌县| 永安市| 英德市| 东城区| 文水县| 赤水市| 大城县| 涟水县| 韩城市| 蓬莱市| 庆云县| 乌拉特后旗| 浦县| 德格县| 年辖:市辖区| 阳信县| 辛集市| 永胜县| 贵州省| 阿合奇县| 北辰区| 秦皇岛市| 临洮县|