java新建文件夹再压缩
时间: 2023-11-04 17:57:12 浏览: 193
java生成压缩文件
4星 · 用户满意度95%
在Java中,可以使用java.util.zip包来实现文件夹的压缩。首先需要创建一个ZipOutputStream对象,然后将要压缩的文件夹递归地添加到ZipOutputStream中。具体实现步骤如下:
1. 创建一个ZipOutputStream对象,并指定要生成的压缩文件的输出流。
2. 使用java.io.File类的listFiles()方法获取文件夹中的所有文件和子文件夹。
3. 遍历文件夹中的每个文件和子文件夹:
- 如果是文件,则将其添加到ZipOutputStream中。
- 如果是文件夹,则递归调用步骤3,将子文件夹内的文件也添加到ZipOutputStream中。
4. 使用ZipOutputStream的finish()方法完成压缩并关闭输出流。
示例代码如下:
```java
import java.io.*;
import java.util.zip.*;
public class ZipFolderExample {
public static void zipFolder(File folder, String outputFilePath) throws IOException {
FileOutputStream fos = new FileOutputStream(outputFilePath);
ZipOutputStream zos = new ZipOutputStream(fos);
zipFiles(folder, folder.getName(), zos);
zos.finish();
zos.close();
}
private static void zipFiles(File file, String parentFolder, ZipOutputStream zos) throws IOException {
if (file.isDirectory()) {
for (File subFile : file.listFiles()) {
zipFiles(subFile, parentFolder + "/" + subFile.getName(), zos);
}
} else {
byte[] buffer = new byte[1024];
FileInputStream fis = new FileInputStream(file);
zos.putNextEntry(new ZipEntry(parentFolder));
int length;
while ((length = fis.read(buffer)) > 0) {
zos.write(buffer, 0, length);
}
fis.close();
}
}
}
```
使用上述代码可以实现将指定文件夹压缩为zip文件。你只需要调用`zipFolder()`方法,并传入要压缩的文件夹和输出文件的路径作为参数。
阅读全文