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()方法可以读取找到的文件(解压缩)。 实验要求: 现要求变成程序读取book.zip,并将book.zip中含有的文件重新存放到当前目录的myboo文件夹中,即将book.zip中的内容加压到mybook文件夹中。
时间: 2024-03-22 18:37:28 浏览: 89
Android实现zip文件压缩及解压缩的方法
好的,我理解了您的要求。以下是一个Java程序示例,可以读取book.zip并将其解压缩到当前目录的mybook文件夹中:
```java
import java.io.*;
import java.util.zip.*;
public class Unzip {
public static void main(String[] args) throws IOException {
String zipFilePath = "book.zip"; // 压缩文件路径
String destDirPath = "mybook/"; // 解压目标目录路径
// 创建解压目标目录
File destDir = new File(destDirPath);
if (!destDir.exists()) {
destDir.mkdir();
}
// 创建ZipInputStream对象
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFilePath));
ZipEntry entry = zipIn.getNextEntry();
// 遍历压缩文件中的所有文件
while (entry != null) {
String filePath = destDirPath + entry.getName();
if (!entry.isDirectory()) { // 如果是文件,则解压缩到指定目录
extractFile(zipIn, filePath);
} else { // 如果是目录,则创建目录
File dir = new File(filePath);
dir.mkdir();
}
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
}
// 解压缩文件
private static void extractFile(ZipInputStream zipIn, String filePath) throws IOException {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
byte[] bytesIn = new byte[4096];
int read = 0;
while ((read = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read);
}
bos.close();
}
}
```
您可以将该程序保存为Unzip.java并编译运行。在运行程序之前,确保book.zip文件与Unzip.java在同一目录下。程序将会创建一个名为mybook的文件夹,并将book.zip中的所有文件解压缩到该文件夹中。
阅读全文