Java編寫zip壓縮文件實例

 

  1. package compress.javaio; 
  2.  
  3. import java.io.*; 
  4. import java.util.zip.*; 
  5.  
  6. public class CompressFiles{ 
  7.  
  8.     /** 
  9.      * @param args 
  10.      * @throws IOException  
  11.      */ 
  12.     public static void main(String[] args) throws IOException { 
  13.         // TODO Auto-generated method stub 
  14.         String sourPath=File.separator+"root"+File.separator+"ziptest02"
  15.         File file=new File(sourPath); 
  16.         ZipOutputStream zipOut=null;//此對象需在主函數中創建 
  17.         zipOut=new ZipOutputStream(new FileOutputStream(File.separator+"root"+File.separator+"ziptest02.zip")); 
  18.         String str=file.getName(); 
  19.         Recurrence(file,zipOut,str);//調用遞歸函數,判斷該當前項是目錄或者文件 
  20.         zipOut.close(); 
  21.         System.out.println("壓縮流已經關閉"); 
  22.     } 
  23.      
  24.     private static void Recurrence(File file,ZipOutputStream zipOut,String str) throws IOException{ 
  25.         //TODO 判斷該項是否是文件,若是文件,直接傳給Compress()函數處理 
  26.         if(file.isDirectory()){ 
  27.             File files[]=file.listFiles(); 
  28.             for(int i=0;i<files.length;i++){ 
  29.                 Recurrence(files[i],zipOut,str); 
  30.             } 
  31.         }else
  32.             Compress(file,zipOut,str); 
  33.         } 
  34.     } 
  35.  
  36.     private static void Compress(File file,ZipOutputStream zipOut,String str) throws IOException { 
  37.         // TODO Auto-generated method stub 
  38.         InputStream input=null
  39.         input=new FileInputStream(file); 
  40.         //String str1=str+File.separator+file.getName(); 
  41.         System.out.println("此次處理文件爲:"+file.getPath()); 
  42.         ZipEntry entry=new ZipEntry(file.getPath()); 
  43.         zipOut.putNextEntry(entry); 
  44.         int temp=0
  45.         while((temp=input.read())!=-1){ 
  46.             zipOut.write(temp); 
  47.         } 
  48.         input.close(); 
  49.     } 
  50.  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章