国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

java實現多個文件壓縮成壓縮包

2024-07-14 08:41:49
字體:
來源:轉載
供稿:網友

本文實例為大家分享了java實現多個文件壓縮的具體代碼,供大家參考,具體內容如下

需要用到的ant.jar

package util;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.Enumeration;import java.util.List;import java.util.zip.ZipEntry;import java.util.zip.ZipFile;import java.util.zip.ZipOutputStream;public class ZipTools {   public static final String ZIP_FILENAME = ""; //需要解壓縮的文件名   public static final String ZIP_DIR = "";  //需要壓縮的文件夾   public static final String UN_ZIP_DIR = "";  //要解壓的文件目錄   public static final int BUFFER = 1024 ;  //緩存大小 public static void zipFile(String baseDir,String fileName) throws Exception{     List fileList=getSubFiles(new File(baseDir));     ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(fileName));     ZipEntry ze=null;     byte[] buf=new byte[BUFFER];     int readLen=0;     for(int i = 0; i <fileList.size(); i++) {       File f=(File)fileList.get(i);       ze=new ZipEntry(getAbsFileName(baseDir, f));       ze.setSize(f.length());       ze.setTime(f.lastModified());         zos.putNextEntry(ze);       InputStream is=new BufferedInputStream(new FileInputStream(f));       while ((readLen=is.read(buf, 0, BUFFER))!=-1) {         zos.write(buf, 0, readLen);       }       is.close();     }     zos.close();   } private static String getAbsFileName(String baseDir, File realFileName){     File real=realFileName;     File base=new File(baseDir);     String ret=real.getName();     while (true) {       real=real.getParentFile();       if(real==null)          break;       if(real.equals(base))          break;       else         ret=real.getName()+"/"+ret;     }     return ret;   } private static List getSubFiles(File baseDir){     List ret=new ArrayList();     File[] tmp=baseDir.listFiles();     for (int i = 0; i <tmp.length; i++) {       if(tmp[i].isFile())         ret.add(tmp[i]);       if(tmp[i].isDirectory())         ret.addAll(getSubFiles(tmp[i]));     }     return ret;   } public static void upZipFile() throws Exception{     ZipFile zfile=new ZipFile(ZIP_FILENAME);     Enumeration zList=zfile.entries();     ZipEntry ze=null;     byte[] buf=new byte[1024];     while(zList.hasMoreElements()){       ze=(ZipEntry)zList.nextElement();           if(ze.isDirectory()){         File f=new File(ZIP_DIR+ze.getName());         f.mkdir();         continue;       }       OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(ZIP_DIR, ze.getName())));       InputStream is=new BufferedInputStream(zfile.getInputStream(ze));       int readLen=0;       while ((readLen=is.read(buf, 0, 1024))!=-1) {         os.write(buf, 0, readLen);       }       is.close();       os.close();      }     zfile.close();   } public static File getRealFileName(String baseDir, String absFileName){     String[] dirs=absFileName.split("/");     File ret=new File(baseDir);     if(dirs.length>1){       for (int i = 0; i < dirs.length-1;i++) {         ret=new File(ret, dirs[i]);       }       if(!ret.exists())         ret.mkdirs();       ret=new File(ret, dirs[dirs.length-1]);       return ret;     }     return ret;   } public static void deleteDirFile(String path){   File file=new File(path);   if(file.isDirectory()){    //如果是目錄,先遞歸刪除     String[] list=file.list();     for(int i=0;i<list.length;i++){     deleteDirFile(path+"//"+list[i]); //先刪除目錄下的文件     }   }       file.delete(); }public static String newFolder(String dir){ java.io.File myFilePath=new java.io.File(dir); if(myFilePath.isDirectory()){}else{  myFilePath.mkdirs(); } return dir; }public static String getFileNames(String path){      File file = new File(path);      // get file list where the path has    File[] array = file.listFiles();     // 獲得文件列表     String pdfNames="";    for(int i=0;i<array.length;i++){        if(array[i].isFile()){          if(array[i].getName().endsWith(".pdf")){  //獲得pdf文件名稱         pdfNames+=array[i].getName().substring(0,array[i].getName().length()-4)+",";        }      }     }    if(pdfNames.length()>0){     pdfNames.substring(0,pdfNames.length()-1);    }    return pdfNames;  }public static void copyFile(String oldPath, String newPath) {    try {      int bytesum = 0;      int byteread = 0;      File oldfile = new File(oldPath);      if (oldfile.exists()) {     //文件存在時        InputStream inStream = new FileInputStream(oldPath); //讀入原文件        FileOutputStream fs = new FileOutputStream(newPath);        byte[] buffer = new byte[1444];        while ( (byteread = inStream.read(buffer)) != -1) {          bytesum += byteread;    //字節數文件大小          fs.write(buffer, 0, byteread);        }        inStream.close();      }    }    catch (Exception e) {      System.out.println("copy file error!");      e.printStackTrace();    }  }public static boolean fileExist(String fileNames,String pdfName){ boolean flag=false; if(!"".equals(fileNames)){  String[] nameArr=fileNames.split(",");  for(int i=0;i<nameArr.length;i++){  if(pdfName.equals(nameArr[i])){    //如果文件名相同則執行拷貝操作(拷貝到zip目錄準備打包)   flag=true;   break;  }  } } return flag; }public static void deleteFileAndDir(String path){  File file = new File(path);       File[] array = file.listFiles();      for(int i=0;i<array.length;i++){         if(array[i].isFile()){         array[i].delete();       }else if(array[i].isDirectory()){         deleteDirFile(array[i].getPath());        }       }   }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建水县| 阿拉善左旗| 石河子市| 木里| 通榆县| 宁城县| 晋江市| 康定县| 融水| 花莲县| 托克托县| 牡丹江市| 鸡泽县| 新闻| 沅陵县| 彭山县| 宜良县| 宜川县| 玛曲县| 湖北省| 襄城县| 海伦市| 丹巴县| 嘉黎县| 兴城市| 澎湖县| 朔州市| 庄河市| 万荣县| 北安市| 翼城县| 海南省| 都江堰市| 富顺县| 东莞市| 黑龙江省| 诸城市| 荔波县| 贵德县| 高碑店市| 苏尼特左旗|