Java實(shí)現(xiàn)把文件壓縮成zip文件的示例代碼
實(shí)現(xiàn)代碼
ackage org.fh.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * 說明:java壓縮成zip * 作者:FH Admin * from:fhadmin.cn */ public class FileZip { /** * @param inputFileName 你要壓縮的文件夾(整個完整路徑) * @param zipFileName 壓縮后的文件(整個完整路徑) * @throws Exception */ public static Boolean zip(String inputFileName, String zipFileName) throws Exception { zip(zipFileName, new File(inputFileName)); return true; } private static void zip(String zipFileName, File inputFile) throws Exception { ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName)); zip(out, inputFile, ""); out.flush(); out.close(); } private static void zip(ZipOutputStream out, File f, String base) throws Exception { if (f.isDirectory()) { File[] fl = f.listFiles(); out.putNextEntry(new ZipEntry(base + "/")); base = base.length() == 0 ? "" : base + "/"; for (int i = 0; i < fl.length; i++) { zip(out, fl[i], base + fl[i].getName()); } } else { out.putNextEntry(new ZipEntry(base)); FileInputStream in = new FileInputStream(f); int b; while ((b = in.read()) != -1) { out.write(b); } in.close(); } } public static void main(String [] temp){ try { zip("E:\\ftl","E:\\test.zip");//你要壓縮的文件夾 和 壓縮后的文件 }catch (Exception ex) { ex.printStackTrace(); } } }
代碼解釋:
1.模型管理 :web在線流程設(shè)計器、導(dǎo)入導(dǎo)出xml、復(fù)制流程、部署流程
2.流程管理 :導(dǎo)入導(dǎo)出流程資源文件、查看流程圖、根據(jù)流程實(shí)例反射出流程模型、激活掛起
3.運(yùn)行中流程:查看流程信息、當(dāng)前任務(wù)節(jié)點(diǎn)、當(dāng)前流程圖、作廢暫停流程、指派待辦人、自由跳轉(zhuǎn)
4.歷史的流程:查看流程信息、流程用時、流程狀態(tài)、查看任務(wù)發(fā)起人信息
5.待辦任務(wù) :查看本人個人任務(wù)以及本角色下的任務(wù)、辦理、駁回、作廢、指派一下代理人
6.已辦任務(wù) :查看自己辦理過的任務(wù)以及流程信息、流程圖、流程狀態(tài)(作廢 駁回 正常完成)
補(bǔ)充
當(dāng)然Java不僅能實(shí)現(xiàn)將文件壓縮成zip文件,還可以實(shí)現(xiàn)將zip文件解壓
下面是實(shí)現(xiàn)的工具類的核心代碼,可以參考一下
/** * 解壓到指定目錄 * @param zipPath * @param descDir * @author isea533 */ public static void unZipFiles(String zipPath,String descDir)throws IOException{ unZipFiles(new File(zipPath), descDir); } /** * 解壓文件到指定目錄 * @param zipFile * @param descDir * @author isea533 */ @SuppressWarnings("rawtypes") public static void unZipFiles(File zipFile,String descDir)throws IOException{ File pathFile = new File(descDir); if(!pathFile.exists()){ pathFile.mkdirs(); } ZipFile zip = new ZipFile(zipFile); for(Enumeration entries = zip.getEntries();entries.hasMoreElements();){ ZipEntry entry = (ZipEntry)entries.nextElement(); String zipEntryName = entry.getName(); InputStream in = zip.getInputStream(entry); String outPath = (descDir+zipEntryName).replaceAll("\\*", "/");; //判斷路徑是否存在,不存在則創(chuàng)建文件路徑 File file = new File(outPath.substring(0, outPath.lastIndexOf('/'))); if(!file.exists()){ file.mkdirs(); } //判斷文件全路徑是否為文件夾,如果是上面已經(jīng)上傳,不需要解壓 if(new File(outPath).isDirectory()){ continue; } //輸出文件路徑信息 System.out.println(outPath); OutputStream out = new FileOutputStream(outPath); byte[] buf1 = new byte[1024]; int len; while((len=in.read(buf1))>0){ out.write(buf1,0,len); } in.close(); out.close(); } System.out.println("******************解壓完畢********************"); }
到此這篇關(guān)于Java實(shí)現(xiàn)把文件壓縮成zip文件的示例代碼的文章就介紹到這了,更多相關(guān)Java文件壓縮成zip內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 使用HttpURLConnection發(fā)送數(shù)據(jù)簡單實(shí)例
這篇文章主要介紹了java 使用HttpURLConnection發(fā)送數(shù)據(jù)簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06如何解決springcloud feign 首次調(diào)用100%失敗的問題
這篇文章主要介紹了如何解決springcloud feign 首次調(diào)用100%失敗的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Java分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)原理與用法詳解
這篇文章主要介紹了Java分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)原理與用法,結(jié)合實(shí)例形式分析了java分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、跳轉(zhuǎn)語句等相關(guān)概念、原理、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-02-02spring boot教程之產(chǎn)生的背景及其優(yōu)勢
這篇文章主要介紹了spring boot教程之產(chǎn)生的背景及其優(yōu)勢的相關(guān)資料,需要的朋友可以參考下2022-08-08JavaWeb開發(fā)之使用jQuery與Ajax實(shí)現(xiàn)動態(tài)聯(lián)級菜單效果
這篇文章主要介紹了JavaWeb開發(fā)之使用jQuery與Ajax實(shí)現(xiàn)動態(tài)聯(lián)級菜單效果的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-10-10Lucene實(shí)現(xiàn)索引和查詢的實(shí)例講解
下面小編就為大家分享一篇Lucene實(shí)現(xiàn)索引和查詢的實(shí)例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12ZooKeeper入門教程三分布式鎖實(shí)現(xiàn)及完整運(yùn)行源碼
本文是ZooKeeper入門系列教程,分布式鎖有多種實(shí)現(xiàn)方式,比如通過數(shù)據(jù)庫、redis都可實(shí)現(xiàn)。作為分布式協(xié)同工具ZooKeeper,當(dāng)然也有著標(biāo)準(zhǔn)的實(shí)現(xiàn)方式。本文介紹在zookeeper中如何實(shí)現(xiàn)排他鎖2022-01-01