1、前期准备,下载jar包(自行百度,网上都有这些资源):1.junrar-0.7.jar --rar压缩关键包2.apache-commons-logging.jar 这个包是junrar-0.7.jar自己需要用到的包,如果不引入此包会提示如图所示的错误。
2、准备一个rar文件做测试,例子的rar文件包含两个文件,一个文件夹
3、引入java腻戴怯猡包,输入代码:/** * @param rarFile rar文件路径 * @param savePath 要解压的路径 */public static voi颊俄岿髭d Rar(String rarFile,String savePath) { //判断是否rar文件 if(!rarFile.endsWith(".rar")) { System.err.println("打开的文件不是rar文件!"); return; } try { FileOutputStream fos = null; //创建一个rar档案文件 Archive rarArchive = new Archive(new File(rarFile)); //判断是否有加密 if(rarArchive != null) { if(rarArchive.isEncrypted()) { rarArchive.close();//关闭资源 return; } FileHeader fileHeader = rarArchive.nextFileHeader(); while(fileHeader != null) { if(!fileHeader.isDirectory()){ //从压缩文件中解压出来的文件名,有可能带目录的文件名 String name = fileHeader.getFileNameString().trim(); String outPutFileName = savePath +"\\"+name; //分离文件名,为了创建目录 File dir = new File(outPutFileName.substring(0, outPutFileName.lastIndexOf("\\"))); //创建文件夹 if(!dir.exists()||!dir.isDirectory()){ dir.mkdirs(); } fos = new FileOutputStream(new File(outPutFileName)); //保存解压的文件 rarArchive.extractFile(fileHeader, fos); //关闭资源 fos.close(); fos = null; } fileHeader = rarArchive.nextFileHeader(); } } rarArchive.close();//关闭资源 } catch (RarException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
4、运行测试:public static void main(String[] args) { Rar("d:\\Users\\Administrator\\Desktop\\rar\\rarFile.rar", "d:\\Users\\Administrator\\Desktop\\rar"); }