2009-11-10 5 views
1

У меня есть зашифрованный файл. Этот файл содержит также различные каталоги и файлы. Я хочу извлечь все эти и сохранить по указанному пути.Каков наилучший способ извлечения zip-файла с помощью java

Итак, как написать программу java для извлечения заархивированного файла.

Благодаря Сунил Кумар Sahoo

+0

возможно дубликат [Как распаковать файлы рекурсивно в Java?] (Http://stackoverflow.com/questions/981578/how-to-unzip-files-recursively-in -java) – Kevin

ответ

1
public static void unzip(){ 
     try{ 
      BufferedOutputStream out = null; 
      ZipInputStream in = new ZipInputStream(ZipFileExtracter.class.getClassLoader().getResourceAsStream("com/artificialmachines/chitme/stamps/ChitMeData.zip")); 
      ZipEntry entry; 
      boolean isDirectory=false; 
      while((entry = in.getNextEntry()) != null){ 
       int count; 
       byte data[] = new byte[BUFFER]; 
       // write the files to the disk 
       String entryName = entry.getName(); 
       File newFile = new File(new StringBuffer().append(System.getProperty("user.dir")).append(File.separator).append(entryName).toString()); 
       if(entryName.endsWith("/")){ 
        isDirectory=true; 
        newFile.mkdir(); 
        //System.out.println("This is directory "+newFile.exists()+" IS DIr "+newFile.isDirectory()+" path "+newFile.getPath()); 
       }else{ 
        newFile.createNewFile(); 
       } 
       if(!isDirectory){ 
        out = new BufferedOutputStream(new FileOutputStream(newFile),BUFFER); 
        while ((count = in.read(data,0,BUFFER)) != -1){ 
         out.write(data,0,count); 
        } 
        cleanUp(out); 
       } 
       isDirectory=false; 
      } 
      cleanUp(in); 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
      System.exit(0); 
     } 
    } 
1

java.util.zip. * Делает необходимая вещь. Пройдите API для refernec. Если вы ищете, например LookThis