电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

Java中zip的壓縮和解壓縮的實現代碼

瀏覽:24日期:2022-08-16 11:00:29

在Java中可以使用ZipOutputStream和ZipInputStream來實現zip的壓縮和解壓縮操作,另外使用FileSystem也可以用來實現zip的解壓縮,下面將介紹這幾種方式,直接上代碼。

zip壓縮

待壓縮文件目錄結構:

Java中zip的壓縮和解壓縮的實現代碼

每個zip文件項都要對應一個ZipEntry,然后通過ZipOutputStream的putNextEntry方法開始寫入一個新的zip文件項,將文件數據發送到zip輸出流中,完成后再調用closeEntry方法。

@Testpublic void testCompressByZip() {try (//指定壓縮完成后zip文件的存儲路徑ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream('F:myFavorites.zip'))){//待壓縮文件/目錄所在的目錄File fileFolder = new File('F:我的收藏');//獲取目錄下的所有文件File[] files = fileFolder.listFiles();ZipEntry zipEntry;byte[] byteArray;int len;//遍歷目錄下的所有文件/目錄,并將它們添加到壓縮文件中for (File file : files) {//一個ZipEntry對應壓縮文件中的一項zipEntry = new ZipEntry(file.getName());zipOutputStream.putNextEntry(zipEntry);try (FileInputStream in = new FileInputStream(file)) {byteArray = new byte[1024];while ((len = in.read(byteArray)) != -1) {zipOutputStream.write(byteArray, 0, len);}} catch (IOException ex) {ex.printStackTrace();}zipOutputStream.closeEntry();}} catch (IOException ex) {ex.printStackTrace();}}

壓縮結果:

Java中zip的壓縮和解壓縮的實現代碼

zip解壓縮

遍歷zip文件中的所有項,并獲取對應項的輸入流,然后通過FileOutputStream輸出到指定目錄中。

@Testpublic void testDecompressByZip() {try (//指定需要解壓縮的zip文件ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream('F:myFavorites.zip'))){ZipEntry zipEntry;byte[] byteArray;int len;//遍歷zip文件中的所有項,并逐個解壓到指定的目錄中while ((zipEntry = zipInputStream.getNextEntry()) != null) {try (FileOutputStream fileOutputStream = new FileOutputStream('F:我的解壓目錄' + zipEntry.getName())) {byteArray = new byte[1024];while ((len = zipInputStream.read(byteArray)) != -1) {fileOutputStream.write(byteArray, 0, len);}} catch (IOException ex) {ex.printStackTrace();}}} catch (IOException ex) {ex.printStackTrace();}}

解壓縮結果:

Java中zip的壓縮和解壓縮的實現代碼

使用FileSystem解壓縮 建立一個文件系統,包含zip文件中的所有項。 遍歷zip文件中的所有項,通過文件訪問器SimpleFileVisitor將每個項復制到指定目錄中。

@Testpublic void testDecompressByZip2(){try {//將壓縮文件作為一個文件系統訪問FileSystem fileSystem = FileSystems.newFileSystem(Paths.get('F:myFavorites.zip'), null);//遍歷壓縮文件中的內容,并使用文件訪問器訪問所有內容Files.walkFileTree(fileSystem.getPath('/'), new SimpleFileVisitor<Path>() {@Overridepublic FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {System.out.println('訪問目錄中文件時調用');//將文件解壓到指定目錄Files.copy(file, new FileOutputStream('F:我的解壓目錄' + file.getName(file.getNameCount() - 1)));return FileVisitResult.CONTINUE;}@Overridepublic FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {System.out.println('訪問目錄中文件之前調用');return FileVisitResult.CONTINUE;}@Overridepublic FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {System.out.println('訪問目錄中文件失敗時調用');return FileVisitResult.SKIP_SUBTREE;}@Overridepublic FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {System.out.println('訪問目錄中的文件及其所有后代之后調用');return FileVisitResult.CONTINUE;}});} catch (IOException ex) {ex.printStackTrace();}}

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

標簽: Java
相關文章:
主站蜘蛛池模板: 钢结构-钢结构厂房-钢结构工程[江苏海逵钢构厂] | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 对辊破碎机-液压双辊式,强力双齿辊,四辊破碎机价格_巩义市金联机械设备生产厂家 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | 运动木地板价格,篮球馆体育运动木地板生产厂家_欧氏地板 | TPE塑胶原料-PPA|杜邦pom工程塑料、PPSU|PCTG材料、PC/PBT价格-悦诚塑胶 | 首页-瓜尔胶系列-化工单体系列-油田压裂助剂-瓜尔胶厂家-山东广浦生物科技有限公司 | 预制围墙_工程预制围墙_天津市瑞通建筑材料有限公司 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 陕西高职单招-陕西高职分类考试网| 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 江苏远邦专注皮带秤,高精度皮带秤,电子皮带秤研发生产 | 雷达液位计_超声波风速风向仪_雨量传感器_辐射传感器-山东风途物联网 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 100国际学校招生 - 专业国际学校择校升学规划 | 葡萄酒灌装机-食用油灌装机-液体肥灌装设备厂家_青州惠联灌装机械 | 淄博不锈钢,淄博不锈钢管,淄博不锈钢板-山东振远合金科技有限公司 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 餐饮加盟网_特色餐饮连锁加盟店-餐饮加盟官网 | 离子色谱自动进样器-青岛艾力析实验科技有限公司 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 煤粉取样器-射油器-便携式等速飞灰取样器-连灵动 | 恒温水槽与水浴锅-上海熙浩实业有限公司 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 氮化镓芯片-碳化硅二极管 - 华燊泰半导体 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 广州迈驰新GMP兽药包装机首页_药品包装机_中药散剂包装机 | 华中线缆有限公司-电缆厂|电缆厂家|电线电缆厂家 | 微波消解仪器_智能微波消解仪报价_高压微波消解仪厂家_那艾 | 篮球地板厂家_舞台木地板品牌_体育运动地板厂家_凯洁地板 | 深圳品牌设计公司-LOGO设计公司-VI设计公司-未壳创意 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | 山东信蓝建设有限公司官网 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 |