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-02-01 19:15:04 浏览: 33
好的,以下是Java代码实现该功能:
```java
import java.io.*;
import java.util.zip.*;
public class Unzip {
public static void main(String[] args) throws IOException {
File zipFile = new File("book.zip"); // 待解压的文件
File destDir = new File("mybook"); // 解压后存放的目录
if (!destDir.exists()) {
destDir.mkdir(); // 如果目录不存在则创建
}
ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFile));
ZipEntry entry;
while ((entry = zipIn.getNextEntry()) != null) {
String filePath = destDir + File.separator + entry.getName();
if (!entry.isDirectory()) { // 如果是文件,则解压到指定目录
extractFile(zipIn, filePath);
} else { // 如果是文件夹,则创建对应的文件夹
File dir = new File(filePath);
dir.mkdir();
}
zipIn.closeEntry();
}
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();
}
}
```
该程序通过ZipInputStream类读取book.zip中的文件,并将文件解压缩到mybook文件夹中。如果book.zip中包含文件夹,则也会在mybook文件夹中创建对应的文件夹。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)