java 提取(解压)zip文件中特定后缀的文件并保存到指定目录
时间: 2024-04-30 11:21:02 浏览: 11
可以使用 Java 中的 ZipInputStream 类来解压缩 zip 文件,并在解压缩的过程中遍历 zip 文件中的所有文件,然后根据特定的后缀名来保存需要的文件到指定目录中。
以下是一个简单的示例代码:
```java
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class ExtractZipFiles {
public static void main(String[] args) {
String zipFilePath = "example.zip"; // zip 文件路径
String destDirectory = "extracted"; // 解压后保存文件的目录
String targetFileExtension = ".txt"; // 需要提取的文件后缀名
File destDir = new File(destDirectory);
if (!destDir.exists()) {
destDir.mkdir();
}
byte[] buffer = new byte[1024];
try {
// 创建 ZipInputStream 对象
ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(zipFilePath));
// 遍历 zip 文件中的所有文件
ZipEntry zipEntry;
while ((zipEntry = zipInputStream.getNextEntry()) != null) {
String fileName = zipEntry.getName();
// 如果文件后缀名符合要求,则将该文件解压缩并保存到指定目录中
if (fileName.endsWith(targetFileExtension)) {
File newFile = new File(destDirectory + File.separator + fileName);
FileOutputStream fos = new FileOutputStream(newFile);
int len;
while ((len = zipInputStream.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
}
zipInputStream.closeEntry();
}
zipInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上面这段代码会遍历 zip 文件中的所有文件,如果文件后缀名符合要求,则将该文件解压缩并保存到指定目录中。你只需要将 `zipFilePath`、`destDirectory` 和 `targetFileExtension` 替换成你自己的值即可。