首頁 > 軟體

Java實現把檔案壓縮成zip檔案的範例程式碼

2022-02-24 13:00:39

實現程式碼

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線上流程設計器、匯入匯出xml、複製流程、部署流程

2.流程管理 :匯入匯出流程資原始檔、檢視流程圖、根據流程範例反射出流程模型、啟用掛起

3.執行中流程:檢視流程資訊、當前任務節點、當前流程圖、作廢暫停流程、指派待辦人、自由跳轉

4.歷史的流程:檢視流程資訊、流程用時、流程狀態、檢視任務發起人資訊

5.待辦任務 :檢視本人個人任務以及本角色下的任務、辦理、駁回、作廢、指派一下代理人

6.已辦任務 :檢視自己辦理過的任務以及流程資訊、流程圖、流程狀態(作廢 駁回 正常完成)

補充

當然Java不僅能實現將檔案壓縮成zip檔案,還可以實現將zip檔案解壓

下面是實現的工具類的核心程式碼,可以參考一下

/**
 * 解壓到指定目錄
 * @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("\*", "/");;
  //判斷路徑是否存在,不存在則建立檔案路徑
  File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
  if(!file.exists()){
  file.mkdirs();
  }
  //判斷檔案全路徑是否為資料夾,如果是上面已經上傳,不需要解壓
  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("******************解壓完畢********************");
 }

到此這篇關於Java實現把檔案壓縮成zip檔案的範例程式碼的文章就介紹到這了,更多相關Java檔案壓縮成zip內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com