Java 解压zip和rar

1、前言

解压zip相对简单,rar解压目前不支持版本5.0及以上,用户使用的软件版本小于5.0才能正常解压

Java代码解压rar文件

2、pom

<!--rar解压缩-->
<dependency>
<groupId>com.github.junrar</groupId>
<artifactId>junrar</artifactId>
<version>7.5.3</version>
</dependency>

原理

import com.github.junrar.Archive;
import com.github.junrar.rarfile.FileHeader;
import java.io.File;
import java.io.FileInputStream;
import java.nio.charset.Charset;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class ZIPRARUtil {
public static boolean zipHasDcmFile(File file) {
ZipInputStream zin = null;
FileInputStream fis = null;
try {
Charset gbk = Charset.forName("GBK");
fis = new FileInputStream(file);
zin = new ZipInputStream(fis, gbk);
ZipEntry ze = null;
while ((ze = zin.getNextEntry()) != null) {
//String path = ze.getName();
//System.out.println("path" + path);
if (!ze.isDirectory() && ze.toString().endsWith(".dcm")) {
return true;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (zin != null) {
zin.closeEntry();
zin.close();
}
if (fis != null)
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
public static boolean rarHasDcmFile(File file) {
FileInputStream fis = null;
Archive archive = null;
try {
fis = new FileInputStream(file);
archive = new Archive(fis);
List<FileHeader> fileHeaderList = archive.getFileHeaders();
for (FileHeader header : fileHeaderList) {
//System.out.println("header=" + header.getFileNameString());
if (!header.isDirectory() && header.getFileNameString().endsWith(".dcm")) {
return true;
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try {
if (fis != null) {
fis.close();
}
if (archive != null) {
fis.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
}
posted @   一只桔子2233  阅读(766)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2020-08-11 【springboot__拦截器】Interceptor
点击右上角即可分享
微信分享提示