使用zipInputStream对压缩文件进行解压的代码示例
时间: 2024-09-10 21:08:50 浏览: 41
C#实现文件压缩与解压的方法示例【ZIP格式】
使用 Java 的 `java.util.zip.ZipInputStream` 类对压缩文件进行解压的一般步骤如下:
首先,你需要创建一个 `ZipInputStream` 对象,这个对象通常由一个 `FileInputStream` 或 `InputStream` 初始化,指向你要解压的 .zip 文件:
```java
import java.io.*;
import java.util.zip.*;
public class ZipDecompression {
public static void main(String[] args) {
try {
FileInputStream fileIn = new FileInputStream("path_to_your_zip_file.zip");
ZipInputStream zis = new ZipInputStream(fileIn);
// ...后续解压操作...
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
然后,你可以遍历 `ZipInputStream`,逐个获取压缩包中的条目,并读取其内容:
```java
ZipEntry entry;
while ((entry = zis.getNextEntry()) != null) {
String filePathInsideArchive = entry.getName();
// 创建目标目录结构,如果不存在
File dir = new File(filePathInsideArchive.substring(0, filePathInsideArchive.lastIndexOf('/')));
if (!dir.exists() && !dir.mkdirs()) {
System.err.println("Failed to create directory: " + dir.getAbsolutePath());
}
// 创建输出流,用于写入文件
FileOutputStream fos = new FileOutputStream(new File(dir, entry.getName()));
byte[] bytesIn = new byte[4096];
int readCount;
while ((readCount = zis.read(bytesIn)) >= 0) {
fos.write(bytesIn, 0, readCount);
}
// 关闭输入流和输出流
fos.close();
zis.closeEntry();
}
// 最后关闭 Zip 输入流
zis.close();
```
请注意,上述代码没有包含错误处理和异常捕获,实际使用时需要加上适当的异常处理。
阅读全文