java 大型文件打包zip
时间: 2023-09-05 10:02:51 浏览: 48
在Java中,我们可以使用`java.util.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 ZipFileExample {
public static void main(String[] args) {
String sourceDir = "path/to/source/directory";
String zipFile = "path/to/destination/zipfile.zip";
try (FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(fos)) {
File file = new File(sourceDir);
zipDirectory(file, file.getName(), zos);
System.out.println("文件成功打包成zip!");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void zipDirectory(File directory, String base, ZipOutputStream zos) throws IOException {
File[] files = directory.listFiles();
for (File file : files) {
if (file.isDirectory()) {
zipDirectory(file, base + "/" + file.getName(), zos);
} else {
FileInputStream fis = new FileInputStream(file);
ZipEntry zipEntry = new ZipEntry(base + "/" + file.getName());
zos.putNextEntry(zipEntry);
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
zos.write(buffer, 0, length);
}
fis.close();
}
}
}
}
```
该代码将指定的源目录下的所有文件及文件夹打包成一个zip文件,并保存到指定的目标路径下。`zipDirectory`方法用于遍历源目录及其子目录,将文件逐个添加到zip文件中。
欢迎根据自己的需求进行修改和调整,比如可以添加异常处理逻辑、进度条显示等功能。