JAVA 解压ZIP RAR文件
来源:互联网 发布:自己搭网络直播 编辑:程序博客网 时间:2024/06/05 09:15
MAVEN下增加依赖
<dependency>
<groupId>com.github.junrar</groupId>
<artifactId>junrar</artifactId>
<version>0.7</version>
</dependency>
JAVA代码
解压RAR格式
public void decompressRar(File file, String descDir) throws IOException {
if (null == file || StringUtils.isEmpty(descDir)) {
return;
}
byte[] bytes = new byte[1024];
Archive archive = null;
try {
archive = new Archive(file);
List<FileHeader> files = archive.getFileHeaders();
for (FileHeader fh : files) {
String compressFileName = "";
if (fh.isUnicode()) {
compressFileName = fh.getFileNameW().trim();
} else {
compressFileName = fh.getFileNameString().trim();
}
File entryFile = new File(descDir + File.separator + compressFileName);
if (fh.isDirectory()) {
entryFile.mkdirs();
} else {
File entryParent = new File(entryFile.getParent());
if (!entryParent.exists()) {
entryParent.mkdirs();
}
InputStream inputStream = archive.getInputStream(fh);
OutputStream outputStream = new FileOutputStream(entryFile);
int len;
while ((len = inputStream.read(bytes)) > 0) {
outputStream.write(bytes, 0, len);
}
inputStream.close();
outputStream.flush();
outputStream.close();
}
}
} catch (RarException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
解压ZIP格式
public void decompressZip(File file, String descDir) throws IOException {
if (null == file || StringUtils.isEmpty(descDir)) {
return;
}
byte[] bytes = new byte[1024];
Charset utf = Charset.forName("UTF-8");
ZipFile zipFile = new ZipFile(file, utf);
Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zipFile.entries();
try {
entries.nextElement();
} catch (IllegalArgumentException ex) {
zipFile = new ZipFile(file, Charset.forName("GBK"));
entries = (Enumeration<ZipEntry>) zipFile.entries();
}
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
File entryFile = new File(descDir + File.separator + entry.getName());
if (entry.isDirectory()) {
entryFile.mkdir();
} else {
File entryParent = new File(entryFile.getParent());
if (!entryParent.exists()) {
entryParent.mkdir();
}
InputStream inputStream = zipFile.getInputStream(entry);
OutputStream outputStream = new FileOutputStream(entryFile);
int len;
while ((len = inputStream.read(bytes)) > 0) {
outputStream.write(bytes, 0, len);
}
inputStream.close();
outputStream.flush();
outputStream.close();
}
}
}
- Java解压ZIP、RAR文件
- java 解压zip、rar文件
- JAVA 解压ZIP RAR文件
- 解压zip rar文件
- Java解压zip和rar文件
- Java 解压zip和rar文件
- java解压zip、rar(多级文件)
- java解压rar.zip
- java解压zip与rar
- java解压rar以及zip
- Java 解压rar 解压缩zip
- java之解压zip,rar
- java调用winrar解压文件[rar.bz2.zip.....]
- java 文件解压(zip或rar)源代码
- java解压rar文件
- java解压rar文件
- java.util.zip包无法正常解压rar软件压缩的rar文件
- ubuntu下解压.zip和.rar文件
- 考试技巧总结
- Git 版本管理工具
- java 根据vlaue获取key
- get_isPlaying can only be called from the main thread unity3d
- qtquick 与c++交互总结
- JAVA 解压ZIP RAR文件
- 查找和编辑节点
- 11.4 本周刷题记录
- REGEXP_LIKE
- Kali第一次Wireshark打开报错
- 机器学习基石-06-1-Restriction of Break Point
- JDBC链接数据库
- 进程,主线程,异步线程,多线程和runloop的作用和关系
- 超级账本Hyperledger-Fabric本地编译与安装(来源于区块链-原理、设计与应用)