java读取rar压缩包文件
时间: 2023-07-18 22:06:08 浏览: 122
Java提取压缩包中的文件.rar
5星 · 资源好评率100%
要在Java中读取RAR压缩包文件,需要使用第三方库,如Junrar或Apache Commons Compress。以下是使用Junrar库的示例代码:
1. 首先,需要下载并导入Junrar库:
```xml
<dependency>
<groupId>com.github.junrar</groupId>
<artifactId>junrar</artifactId>
<version>7.4.0</version>
</dependency>
```
2. 读取RAR文件:
```java
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.github.junrar.Archive;
import com.github.junrar.exception.RarException;
import com.github.junrar.impl.FileVolumeManager;
import com.github.junrar.rarfile.FileHeader;
public class RarFileReader {
public static void main(String[] args) throws RarException, IOException {
// 设置RAR文件路径
String rarFilePath = "C:\\example.rar";
// 创建Archive对象
Archive archive = new Archive(new FileVolumeManager(new File(rarFilePath)));
// 遍历RAR文件中的所有文件
FileHeader fileHeader = archive.nextFileHeader();
while (fileHeader != null) {
// 获取文件名
String fileName = fileHeader.getFileNameString();
// 如果是文件夹,就创建文件夹
if (fileHeader.isDirectory()) {
File dir = new File(fileName);
dir.mkdirs();
}
// 如果是文件,就创建文件并写入内容
else {
File file = new File(fileName);
file.createNewFile();
OutputStream os = new FileOutputStream(file);
InputStream is = archive.getInputStream(fileHeader);
byte[] buffer = new byte[4096];
int len;
while ((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
os.close();
is.close();
}
// 继续遍历下一个文件
fileHeader = archive.nextFileHeader();
}
// 关闭Archive对象
archive.close();
}
}
```
以上代码会将RAR文件中的所有文件解压到当前目录下。如果有密码保护的RAR文件,需要在创建Archive对象时传入密码。
阅读全文