Java编程 ZIP文件是一种流行的档案文件,可以将若干个文件压缩到一个ZIP文件中。 使用ZipInputStream类创建的输入流对象可以读取压缩到ZIP文件中的各个文件(即解压)。假设要解压一个名为book.zip的文件,首先使用ZipInputStream的构造方法public ZipInputStream(InputStream in)创建一个对象in,例如 ZipInputStream in = new ZipInputStream(new FileInputStream(“book.zip”)) 然后让ZipInputStream的对象in找到book.zip中的下一个文件,例如: ZipEntry zipEntry = in.getNextEntry(); 那么in调用read()方法可以读取找到的文件(解压缩)。
时间: 2024-03-18 11:39:33 浏览: 57
您提供的内容是关于使用 Java 中的 ZipInputStream 类进行 ZIP 文件解压缩的说明,以下是一个简单的 Java 代码示例,用于演示如何使用 ZipInputStream 类解压缩 ZIP 文件:
```java
import java.io.*;
import java.util.zip.*;
public class UnzipExample {
public static void main(String[] args) {
String zipFilePath = "book.zip";
String destDirectory = "unzipped";
byte[] buffer = new byte[1024];
try {
File destDir = new File(destDirectory);
if (!destDir.exists()) {
destDir.mkdir();
}
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFilePath));
ZipEntry entry = zipIn.getNextEntry();
while (entry != null) {
String filePath = destDirectory + File.separator + entry.getName();
if (!entry.isDirectory()) {
FileOutputStream fos = new FileOutputStream(filePath);
int len;
while ((len = zipIn.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
} else {
File dir = new File(filePath);
dir.mkdir();
}
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
System.out.println("Successfully unzipped " + zipFilePath);
} catch (IOException e) {
System.out.println("Failed to unzip " + zipFilePath + " : " + e.getMessage());
}
}
}
```
在上述代码中,我们首先指定了要解压缩的 ZIP 文件路径和目标目录路径。然后,我们创建一个 ZipInputStream 对象,将 ZIP 文件的输入流传入其中。接着,我们通过 getNextEntry() 方法逐个获取 ZIP 文件中的 ZipEntry 对象,然后判断该对象是否为目录,如果是目录,则创建一个对应的目录;如果不是目录,则将该 ZipEntry 对象表示的文件内容读取出来,并写入到目标目录中对应的文件中。最后,我们调用 ZipInputStream 对象的 close() 方法来关闭输入流,完成 ZIP 文件的解压缩。
阅读全文