成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Java8 Zip 壓縮與解壓縮的實現

瀏覽:96日期:2022-09-03 17:32:56

網上找過幾個例子都有點小問題,還是谷歌找出來的靠譜。主要是增加了指定文件的功能,通過 Java8 的 Lambda 判斷是否加入 ZIP 壓縮,比較方便。函數表達式的簽名是 Function<File, Boolean>,參數是待加入的 File 對象,返回值 true 表示允許,反之不行。

完整代碼在:https://gitee.com/sp42_admin/ajaxjs/blob/master/ajaxjs-base/src/main/java/com/ajaxjs/util/io/FileHelper.java

/** * Copyright sp42 frank@ajaxjs.com * * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an 'AS IS' BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package com.ajaxjs.util.io;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.function.Function;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStream;import java.util.zip.ZipOutputStream;import com.ajaxjs.util.logger.LogHelper;/** * ZIP 壓縮/解壓縮 * * @author sp42 * */public class ZipHelper { private static final LogHelper LOGGER = LogHelper.getLog(ZipHelper.class); /** * 解壓文件 * * @param save 解壓文件的路徑,必須為目錄 * @param zipFile 輸入的解壓文件路徑,例如C:/temp/foo.zip或 c:tempbar.zip */ public static void unzip(String save, String zipFile) { if (!new File(save).isDirectory()) throw new IllegalArgumentException('保存的路徑必須為目錄路徑'); long start = System.currentTimeMillis(); File folder = new File(save); if (!folder.exists()) folder.mkdirs(); try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile));) { ZipEntry ze; while ((ze = zis.getNextEntry()) != null) { File newFile = new File(save + File.separator + ze.getName()); System.out.println('file unzip : ' + newFile.getAbsoluteFile()); // 大部分網絡上的源碼,這里沒有判斷子目錄 if (ze.isDirectory()) { newFile.mkdirs(); } else {// new File(newFile.getParent()).mkdirs(); FileHelper.initFolder(newFile); FileOutputStream fos = new FileOutputStream(newFile); IoHelper.write(zis, fos, false); fos.close(); }// ze = zis.getNextEntry(); } zis.closeEntry(); } catch (IOException e) { LOGGER.warning(e); } LOGGER.info('解壓縮完成,耗時:{0}ms,保存在{1}', System.currentTimeMillis() - start, save); } /** * 壓縮文件 * * @param toZip 要壓縮的目錄或文件 * @param saveZip 壓縮后保存的 zip 文件名 */ public static void zip(String toZip, String saveZip) { zip(toZip, saveZip, null); } /** * 壓縮文件 * * @param toZip 要壓縮的目錄或文件 * @param saveZip 壓縮后保存的 zip 文件名 * @param everyFile 輸入 File,可在這 Lambda 里面判斷是否加入 ZIP 壓縮,返回 true 表示允許,反之不行 */ public static void zip(String toZip, String saveZip, Function<File, Boolean> everyFile) { long start = System.currentTimeMillis(); File fileToZip = new File(toZip); FileHelper.initFolder(saveZip); try (FileOutputStream fos = new FileOutputStream(saveZip); ZipOutputStream zipOut = new ZipOutputStream(fos);) { zip(fileToZip, fileToZip.getName(), zipOut, everyFile); } catch (IOException e) { LOGGER.warning(e); } LOGGER.info('壓縮完成,耗時:{0}ms,保存在{1}', System.currentTimeMillis() - start, saveZip); } /** * 內部的壓縮方法 * * @param toZip 要壓縮的目錄或文件 * @param fileName ZIP 內的文件名 * @param zipOut ZIP 流 * @param everyFile 輸入 File,可在這 Lambda 里面判斷是否加入 ZIP 壓縮,返回 true 表示允許,反之不行 */ private static void zip(File toZip, String fileName, ZipOutputStream zipOut, Function<File, Boolean> everyFile) { if (toZip.isHidden()) return; if (everyFile != null && !everyFile.apply(toZip)) { return; // 跳過不要的 } try { if (toZip.isDirectory()) { zipOut.putNextEntry(new ZipEntry(fileName.endsWith('/') ? fileName : fileName + '/')); zipOut.closeEntry(); File[] children = toZip.listFiles(); for (File childFile : children) { zip(childFile, fileName + '/' + childFile.getName(), zipOut, everyFile); } return; } zipOut.putNextEntry(new ZipEntry(fileName)); try (FileInputStream in = new FileInputStream(toZip);) { IoHelper.write(in, zipOut, false); } } catch (IOException e) { LOGGER.warning(e); } }}

到此這篇關于Java8 Zip 壓縮與解壓縮的實現的文章就介紹到這了,更多相關Java8 Zip 壓縮與解壓縮內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美黄色一区| www国产精品av| 国产91综合一区在线观看| 欧美国产精品v| 制服丝袜在线91| 久久成人国产| 欧美三级午夜理伦三级中文幕| 精品亚洲成a人| 一区二区三区日韩精品视频| 26uuu国产日韩综合| 欧美无人高清视频在线观看| 国产一级久久| 欧美黄色一区二区| 国产成都精品91一区二区三| 青娱乐精品视频在线| 一区二区欧美国产| 国产精品三级久久久久三级| 精品欧美一区二区久久| 91成人免费电影| 99这里有精品| 国模大胆一区二区三区| www.欧美色图| 国产乱国产乱300精品| 日日夜夜精品视频免费| 香蕉国产精品偷在线观看不卡| 国产成人精品影院| 日韩中文字幕一区二区三区| 久久久五月婷婷| 欧美二区在线| 国产毛片精品国产一区二区三区| 丝袜脚交一区二区| 亚洲午夜久久久久| 欧美日韩国产精选| 99久久久免费精品国产一区二区 | 亚洲一区二区伦理| 亚洲欧美aⅴ...| 在线不卡欧美精品一区二区三区| 在线看不卡av| 91久久精品日日躁夜夜躁欧美| 国产精品人人爽人人做我的可爱| 黄色亚洲大片免费在线观看| 欧美日韩精品免费观看视一区二区| 99精品在线免费| 成人性色生活片免费看爆迷你毛片| 国产一区二区女| 国内精品伊人久久久久av影院 | 欧美午夜影院一区| 在线看国产日韩| 91福利在线看| 欧美优质美女网站| 91久久久免费一区二区| 色天天综合久久久久综合片| 一本久道久久综合中文字幕| 玖玖视频精品| 91国产免费看| 在线国产亚洲欧美| 欧美色图激情小说| 欧美日韩国产不卡| 91精品国产综合久久婷婷香蕉| 欧美丰满少妇xxxxx高潮对白| 欧美日韩美少妇| 欧美日韩国产免费一区二区| 欧美日韩国产色站一区二区三区| 欧美美女bb生活片| 欧美一区二区成人| 欧美zozo另类异族| 国产亚洲精品超碰| 国产精品久久777777| 亚洲色欲色欲www| 亚洲卡通动漫在线| 夜夜爽夜夜爽精品视频| 亚洲一二三专区| 亚洲成人www| 日韩电影一区二区三区四区| 日日夜夜一区二区| 久久精品国产在热久久| 国模套图日韩精品一区二区| 国产91精品入口| 91看片淫黄大片一级在线观看| 欧美色图首页| 在线视频免费在线观看一区二区| 亚洲一区三区电影在线观看| 久久久久免费| 欧美日韩精品专区| 日韩免费观看高清完整版在线观看| 精品福利一二区| 国产精品你懂的| 亚洲激情图片一区| 日韩精品欧美成人高清一区二区| 日韩av午夜在线观看| 亚洲精品免费一二三区| 性欧美大战久久久久久久久| 麻豆91在线看| 懂色av一区二区三区蜜臀| 99re在线精品| 亚洲黑丝在线| 色狠狠色狠狠综合| 欧美一级片在线看| 中文字幕+乱码+中文字幕一区| 一区二区三区不卡在线观看 | 色婷婷精品大视频在线蜜桃视频| 欧美视频你懂的| 精品国产伦一区二区三区免费| 国产精品视频一区二区三区不卡| 伊人夜夜躁av伊人久久| 青青草原综合久久大伊人精品| 国产成人在线电影| 欧美午夜视频| 久久久久久亚洲精品杨幂换脸 | 亚洲va欧美va人人爽| 国内欧美视频一区二区| 波多野洁衣一区| 亚洲国产1区| 久久精品91| 欧美一级一区二区| 国产精品成人一区二区艾草 | 久久久蜜桃精品| 色老汉一区二区三区| 亚洲一区三区视频在线观看| 91豆麻精品91久久久久久| 欧美一区三区四区| 久久综合色8888| 91豆麻精品91久久久久久| 日韩亚洲欧美一区二区三区| 中文字幕日韩一区| 美女一区二区久久| 91天堂素人约啪| 最新成人av网站| 欧美日韩aaaaa| 中文字幕精品在线不卡| 日韩精品一级中文字幕精品视频免费观看| 国产成人免费视| 亚洲日本免费| 欧美精品乱码久久久久久按摩 | 亚洲欧美卡通另类91av| 日韩一级黄色大片| 一区二区三区欧美日| 国产成人av福利| 一区二区三区你懂的| 日韩一区二区三免费高清| 亚洲精品伦理在线| 国产999精品久久久久久| 一区二区三区av| 精品国产一二三| 天天爽夜夜爽夜夜爽精品视频| 91视频免费播放| 欧美性色aⅴ视频一区日韩精品| 国产精品国产三级国产aⅴ中文| 精品一二三四区| 91久久国产综合久久蜜月精品| 欧美一二三四在线| 亚洲 欧美综合在线网络| 91丨九色porny丨蝌蚪| 日本韩国欧美三级| 国产精品国产精品国产专区不片| 国内国产精品久久| 国产精品嫩草99av在线| 久久免费精品国产久精品久久久久| 视频一区在线视频| 激情综合电影网| 欧美一区二区二区| 亚洲在线成人精品| av亚洲精华国产精华精| 亚洲一区欧美二区| 久久色在线视频| 久久精品国产一区二区| 影音先锋亚洲电影| 欧美区一区二区三区| 亚洲色欲色欲www| 国产精品影音先锋| 好看的亚洲午夜视频在线| 欧美美女黄视频| 国产女人水真多18毛片18精品视频 | 91浏览器入口在线观看| 久久久久久色| 亚洲视频一区二区在线| 国产乱码一区二区三区| 日韩视频不卡| 欧美mv日韩mv国产| 一区二区在线观看av| 成人高清伦理免费影院在线观看| 国产精品免费看| 久久青草国产手机看片福利盒子 | 色综合一个色综合| 欧美伊人久久久久久久久影院 | 国产精品女主播一区二区三区| 日韩欧美中文一区| 性欧美疯狂xxxxbbbb| 99久久99久久精品免费观看| 麻豆久久久9性大片| 久久久www成人免费无遮挡大片| 日本vs亚洲vs韩国一区三区二区 | 久久久激情视频| 强制捆绑调教一区二区| 欧美日本在线| 欧美三级午夜理伦三级中视频| 亚洲已满18点击进入久久| 不卡一二三区首页| 欧美色图激情小说| 亚洲一区二区三区不卡国产欧美|