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

Java實現(xiàn)解壓zip和rar包的示例代碼

 更新時間:2024年01月15日 14:13:29   作者:Peter447  
這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)解壓zip和rar包,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

zip的解壓提供了一種方法,

rar的解壓提供了兩種方法,第一種方法是調(diào)用命令調(diào)用主機安裝的解壓縮工具,

第二種方法,需要注意一下,需要導(dǎo)一個包

<dependency>
    <groupId>com.github.junrar</groupId>
    <artifactId>junrar</artifactId>
    <version>4.0.0</version>
</dependency>

并且第二種方法,截至2023年,只支持rar4以下版本的解壓,rar5的版本不支持,以后會不會有更新,就不知道了。

try{
                File file = new File(filePath);
                if(file.getName().endsWith(".zip")){
                        ZipInputStream zis = new ZipInputStream(new FileInputStream(file), Charset.forName("GBK"));
                        byte[] buffer = new byte[1024];
                        ZipEntry ze;
                        while ((ze = zis.getNextEntry()) != null) {
                            String entryName = ze.getName();
                            File extractedFile = new File(ceShiFilePath + entryName);
                            if (ze.isDirectory()) {
                                extractedFile.mkdirs();
                            } else{
                                FileOutputStream fos = new FileOutputStream(extractedFile);
                                int len;
                                while ((len = zis.read(buffer)) > 0) {
                                    fos.write(buffer, 0, len);
                                }
                                fos.close();
                                fileList.add(extractedFile);
                            }
                        }
                        zis.closeEntry();
                }else if(file.getName().endsWith(".rar")){
                    String cmd = "D:\\tools\\zip\\UnRAR.exe";
                    //cmd命令
                    String unrarCmd = cmd + " x -r -p- -o+ " + file.getAbsolutePath() + " "
                            + ceShiFilePath;
                    Runtime rt = Runtime.getRuntime();
                    //調(diào)用程序UnRAR解壓程序(Windows)
                    Process pre = rt.exec(unrarCmd);
                    //防止文件亂碼
                    InputStreamReader isr = new InputStreamReader(pre.getInputStream(),"GBK");
                    BufferedReader bf = new BufferedReader(isr);
                    String line = null;
                    while ((line = bf.readLine()) != null) {
                        line = line.trim();
                        if ("".equals(line)) {
                            continue;
                        }
                    }
                    bf.close();
                    pre.destroy();
                }else if(file.getName().endsWith(".rar")){
                    Archive archive = new Archive(new FileInputStream(file));
                    List<FileHeader> fileHeaders = archive.getFileHeaders();
                    for (FileHeader fileHeader : fileHeaders) {
                        if (fileHeader.isDirectory()) {
                            File dir = new File(ceShiFilePath + fileHeader.getFileNameString());
                            if (!dir.exists()){
                                dir.mkdirs();
                            }
                        } else {
                            String fileName=  fileHeader.getFileNameW().trim();
                            File subFile = new File(ceShiFilePath + fileName);
                            if (!subFile.exists()) {
                                if (!subFile.getParentFile().exists()) {
                                    subFile.getParentFile().mkdirs();
                                }
                                subFile.createNewFile();
                            }
                            FileOutputStream os = new FileOutputStream(subFile);
                            archive.extractFile(fileHeader, os);
                            os.close();
                            fileList.add(subFile);
                        }
                    }
                    archive.close();
                }
            for(File file111 : fileList){
                System.out.println(file111.getAbsolutePath());
            }
        }catch (Exception ex){
            ex.printStackTrace();
            log.error(ex.getMessage());
        }

都是親測可用的。

到此這篇關(guān)于Java實現(xiàn)解壓zip和rar包的示例代碼的文章就介紹到這了,更多相關(guān)Java解壓zip和rar內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談springboot的三種啟動方式

    淺談springboot的三種啟動方式

    這篇文章主要介紹了淺談springboot的三種啟動方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java中List的使用方法簡單介紹

    Java中List的使用方法簡單介紹

    這篇文章主要針對Java中List的使用方法為大家介紹了進行簡單介紹,List是個集合接口,只要是集合類接口都會有個“迭代子”( Iterator ),利用這個迭代子,就可以對list內(nèi)存的一組對象進行操作,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Java修改Integer變量值遇到的問題及解決

    Java修改Integer變量值遇到的問題及解決

    這篇文章主要介紹了Java修改Integer變量值遇到的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Springboot 使用內(nèi)置tomcat禁止不安全HTTP的方法

    Springboot 使用內(nèi)置tomcat禁止不安全HTTP的方法

    這篇文章主要介紹了Springboot 使用內(nèi)置tomcat禁止不安全HTTP的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java?中向?Arraylist?添加對象的示例代碼

    Java?中向?Arraylist?添加對象的示例代碼

    本文介紹了如何在 Java 中向 ArrayList 添加對象,并提供了示例和注意事項,通過掌握這些知識,讀者可以在自己的 Java 項目中有效地使用 ArrayList 來存儲和操作對象,需要的朋友可以參考下
    2023-11-11
  • Java實現(xiàn)辦公文檔在線預(yù)覽功能

    Java實現(xiàn)辦公文檔在線預(yù)覽功能

    java實現(xiàn)辦公文件在線預(yù)覽功能是一個大家在工作中也許會遇到的需求,這篇文章就教大家如何實現(xiàn)這一功能,感興趣的小伙伴可以了解一下
    2021-12-12
  • Java序列化和反序列化示例介紹

    Java序列化和反序列化示例介紹

    大家好,本篇文章主要講的是Java序列化和反序列化示例介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 使用Java獲取Json中的數(shù)據(jù)簡單示例

    使用Java獲取Json中的數(shù)據(jù)簡單示例

    開發(fā)過程中經(jīng)常會遇到j(luò)son數(shù)據(jù)的處理,而單獨對json數(shù)據(jù)進行增刪改并不方便,下面這篇文章主要給大家介紹了關(guān)于使用Java獲取Json中的數(shù)據(jù),文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • Java中輕量級http開發(fā)庫Unirest使用及實用技巧

    Java中輕量級http開發(fā)庫Unirest使用及實用技巧

    Unirest for Java 是一個輕量級、易于使用的 HTTP 客戶端庫,旨在簡化 Java 應(yīng)用程序中的 HTTP 請求發(fā)送和響應(yīng)處理,本文詳細介紹它的主要特性、基本用法以及一些實用技巧,感興趣的朋友跟隨小編一起看看吧
    2025-10-10
  • Java程序中的延遲加載功能使用

    Java程序中的延遲加載功能使用

    這篇文章主要介紹了Java程序中的延遲加載功能使用,一定程度上有助于提升性能和降低內(nèi)存使用率,需要的朋友可以參考下
    2015-07-07

最新評論

万荣县| 青浦区| 乐平市| 昌图县| 桐梓县| 河西区| 镶黄旗| 乌兰察布市| 监利县| 霸州市| 正蓝旗| 哈密市| 延边| 耿马| 利川市| 五河县| 黄大仙区| 涞水县| 阳山县| 阳高县| 大邑县| 万安县| 鄂托克前旗| 云安县| 时尚| 永年县| 新巴尔虎左旗| 斗六市| 邯郸市| 洪泽县| 龙海市| 开阳县| 香河县| 外汇| 浦城县| 婺源县| 宽甸| 米泉市| 济宁市| 宝应县| 天水市|