Java导出zip文件
时间: 2024-01-07 22:03:56 浏览: 87
您可以使用Java中的ZipOutputStream和FileOutputStream来创建并导出zip文件。以下是一个简单的示例代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipFileExporter {
public static void main(String[] args) {
String sourceDir = "/path/to/source/directory"; // 要压缩的源文件目录
String zipFile = "/path/to/zipfile.zip"; // 导出的zip文件名
try {
zipDirectory(sourceDir, zipFile);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void zipDirectory(String sourceDir, String zipFile) throws IOException {
FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(fos);
File directory = new File(sourceDir);
// 获取目录中的所有文件列表
File[] fileList = directory.listFiles();
// 将每个文件写入zip输出流中
for (File file : fileList) {
if (file.isFile()) {
addToZip(directory, file, zos);
}
}
zos.close();
fos.close();
System.out.println("导出完成!");
}
private static void addToZip(File directory, File file, ZipOutputStream zos) throws IOException {
FileInputStream fis = new FileInputStream(file);
String zipFilePath = file.getCanonicalPath().substring(directory.getCanonicalPath().length() + 1);
ZipEntry zipEntry = new ZipEntry(zipFilePath);
zos.putNextEntry(zipEntry);
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
zos.write(buffer, 0, bytesRead);
}
fis.close();
}
}
```
此代码将指定的源文件目录中的所有文件压缩到一个zip文件中,并将其保存到指定的文件路径中。它使用ZipOutputStream和FileOutputStream来创建zip文件,并使用FileInputStream来读取要压缩的文件。在addToZip方法中,它将每个文件添加到ZipOutputStream中,并将其写入zip文件。
阅读全文