java如何解压rar文件
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 void 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");
}