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-07 12:49:35 浏览: 11
好的,你需要一个 Java 程序来解压缩 ZIP 文件并将其中的文件存储到指定的目录中。以下是一个示例程序:
```java
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class UnzipExample {
public static void main(String[] args) throws IOException {
String zipFilePath = "book.zip"; // ZIP 文件路径
String destDirPath = "mybook"; // 目标文件夹路径
byte[] buffer = new byte[1024];
File destDir = new File(destDirPath);
if (!destDir.exists()) {
destDir.mkdir();
}
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFilePath));
ZipEntry entry = zipIn.getNextEntry();
while (entry != null) {
String filePath = destDirPath + File.separator + entry.getName();
if (!entry.isDirectory()) {
extractFile(zipIn, filePath, buffer);
} else {
File dir = new File(filePath);
dir.mkdir();
}
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
}
private static void extractFile(ZipInputStream zipIn, String filePath, byte[] buffer) throws IOException {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
int len;
while ((len = zipIn.read(buffer)) > 0) {
bos.write(buffer, 0, len);
}
bos.flush();
bos.close();
}
}
```
你只需要将 `book.zip` 文件放在程序所在的目录中,然后运行该程序即可将其中的文件解压缩到 `mybook` 文件夹中。