Java 批量压缩文件
时间: 2024-09-28 16:05:51 浏览: 31
Java调用Zip类批量压缩多个文件.rar
在Java中批量压缩文件通常使用的是`java.util.zip`包提供的功能,特别是`ZipOutputStream`和`FileInputStream`类。以下是一个简单的步骤概述:
1. 导入必要的库:
```java
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
```
2. 创建一个`ZipOutputStream`实例,指定压缩后的文件名:
```java
String zipFileName = "compressed_files.zip";
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFileName))) {
//...
}
```
3. 遍历需要压缩的文件目录,获取每个文件的输入流:
```java
File directory = new File("path/to/directory");
for (File file : directory.listFiles()) {
if (file.isFile()) { // 只处理文件,不处理子目录
try (FileInputStream fis = new FileInputStream(file)) {
//...
}
}
}
```
4. 将文件添加到压缩流中,创建`ZipEntry`并设置其名称:
```java
String entryName = file.getName();
ZipEntry zipEntry = new ZipEntry(entryName);
zos.putNextEntry(zipEntry);
// 读取文件内容,并写入压缩流
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) != -1) {
zos.write(buffer, 0, length);
}
zos.closeEntry(); // 关闭当前entry
```
5. 最后关闭所有资源:
```java
zos.finish(); // 结束压缩
fis.close();
```
阅读全文