java 对文件夹压缩
时间: 2023-07-01 11:29:40 浏览: 45
Java提供了ZipOutputStream和ZipEntry类来实现对文件夹的压缩。
下面是一个简单的示例代码,可以将指定文件夹压缩成一个zip文件:
```java
import java.io.*;
import java.util.zip.*;
public class ZipDirectory {
public static void main(String[] args) throws Exception {
String sourceFolderPath = "sourceFolder"; // 源文件夹路径
String zipFilePath = "target.zip"; // 压缩后的zip文件路径
FileOutputStream fos = new FileOutputStream(zipFilePath);
ZipOutputStream zos = new ZipOutputStream(fos);
File sourceFolder = new File(sourceFolderPath);
addFolderToZip(sourceFolder, sourceFolder.getName(), zos);
zos.close();
fos.close();
System.out.println("文件夹压缩完成");
}
private static void addFolderToZip(File folder, String parentFolderName, ZipOutputStream zos) throws Exception {
for (File file : folder.listFiles()) {
if (file.isDirectory()) {
addFolderToZip(file, parentFolderName + "/" + file.getName(), zos);
} else {
ZipEntry zipEntry = new ZipEntry(parentFolderName + "/" + file.getName());
zos.putNextEntry(zipEntry);
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
zos.write(buffer, 0, length);
}
fis.close();
}
}
}
}
```
在这个示例中,我们使用了递归的方式将源文件夹中的所有文件和子文件夹都添加到了zip文件中。需要注意的是,每个ZipEntry对象都需要调用ZipOutputStream的putNextEntry()方法来添加到zip文件中,并且需要在添加完数据后调用ZipOutputStream的closeEntry()方法。
相关推荐
![](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)