码迷,mamicode.com
首页 > 编程语言 > 详细

Java代码中解压RAR文件

时间:2017-06-20 16:18:38      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:count   down   name   cer   span   rdo   finally   file   str   

[java] view plaincopy
 
  1. import java.io.File;  
  2. import java.io.FileOutputStream;  
  3.   
  4. import de.innosystec.unrar.Archive;  
  5. import de.innosystec.unrar.rarfile.FileHeader;  
  6.   
  7. public class UnRARTools {  
  8.   
  9.     public void unrar(File sourceRar, File destDir) throws Exception {  
  10.         Archive archive = null;  
  11.         FileOutputStream fos = null;  
  12.         System.out.println("Starting...");  
  13.         try {  
  14.             archive = new Archive(sourceRar);  
  15.             FileHeader fh = archive.nextFileHeader();  
  16.             int count = 0;  
  17.             File destFileName = null;  
  18.             while (fh != null) {  
  19.                 System.out.println((++count) + ") " + fh.getFileNameString());  
  20.                 String compressFileName = fh.getFileNameString().trim();  
  21.                 destFileName = new File(destDir.getAbsolutePath() + "/" + compressFileName);  
  22.                 if (fh.isDirectory()) {  
  23.                     if (!destFileName.exists()) {  
  24.                         destFileName.mkdirs();  
  25.                     }  
  26.                     fh = archive.nextFileHeader();  
  27.                     continue;  
  28.                 }   
  29.                 if (!destFileName.getParentFile().exists()) {  
  30.                     destFileName.getParentFile().mkdirs();  
  31.                 }  
  32.                 fos = new FileOutputStream(destFileName);  
  33.                 archive.extractFile(fh, fos);  
  34.                 fos.close();  
  35.                 fos = null;  
  36.                 fh = archive.nextFileHeader();  
  37.             }  
  38.   
  39.             archive.close();  
  40.             archive = null;  
  41.             System.out.println("Finished !");  
  42.         } catch (Exception e) {  
  43.             throw e;  
  44.         } finally {  
  45.             if (fos != null) {  
  46.                 try {  
  47.                     fos.close();  
  48.                     fos = null;  
  49.                 } catch (Exception e) {  
  50.                     //ignore  
  51.                 }  
  52.             }  
  53.             if (archive != null) {  
  54.                 try {  
  55.                     archive.close();  
  56.                     archive = null;  
  57.                 } catch (Exception e) {  
  58.                     //ignore  
  59.                 }  
  60.             }  
  61.         }  
  62.     }  
  63.   
  64. }  

 

 

需要引用到以下两个lib.
java-unrar-0.5.jar
http://www.java2s.com/Code/JarDownload/java/java-unrar-0.5.jar.zip
apache-commons-logging.jar
http://www.java2s.com/Code/JarDownload/apache-commons/apache-commons-logging.jar.zip

Java代码中解压RAR文件

标签:count   down   name   cer   span   rdo   finally   file   str   

原文地址:http://www.cnblogs.com/wangfeng520/p/7054556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!