java代码 解压一个文件夹中所有zip文件
时间: 2023-11-18 08:06:23 浏览: 108
用代码解压zip文件里面的指定文件
5星 · 资源好评率100%
可以使用Java的ZipInputStream和FileOutputStream类来解压缩一个文件夹中所有zip文件。以下是示例代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class UnzipAllFiles {
public static void main(String[] args) {
File folder = new File("your/folder/path");
File[] files = folder.listFiles();
for (File file : files) {
if (file.isFile() && file.getName().endsWith(".zip")) {
try (ZipInputStream zipIn = new ZipInputStream(new FileInputStream(file))) {
ZipEntry entry = zipIn.getNextEntry();
while (entry != null) {
String filePath = file.getParent() + File.separator + entry.getName();
if (!entry.isDirectory()) {
extractFile(zipIn, filePath);
} else {
File dir = new File(filePath);
dir.mkdir();
}
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private static void extractFile(ZipInputStream zipIn, String filePath) throws IOException {
try (FileOutputStream fos = new FileOutputStream(filePath)) {
byte[] buffer = new byte[1024];
int length;
while ((length = zipIn.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
}
}
}
```
在上面的代码中,我们首先获取指定文件夹的所有文件,然后遍历每个文件。如果文件是一个普通文件(不是文件夹),并且文件名以“.zip”结尾,我们就创建一个ZipInputStream对象,读取zip文件中的每个条目(文件或文件夹),并将其解压到与zip文件相同的目录中。如果条目是一个文件,我们就调用extractFile()方法将其解压到指定的文件路径中;如果条目是一个文件夹,我们就创建一个新的文件夹。
在上面的代码中,我们使用了Java 7中的“try-with-resources”语句,它可以自动关闭输入输出流。如果你使用的是Java 6或更早版本的Java,你需要在finally块中手动关闭输入输出流。
你可以将上面的代码中的“your/folder/path”替换为你想要解压缩zip文件的文件夹的路径,然后编译和运行代码。
阅读全文