java文件打zip压缩包
时间: 2023-05-25 08:01:36 浏览: 246
基于Java向zip压缩包追加文件
要将Java文件打包为Zip压缩包,可以使用Java中的ZipOutputStream类。下面是一个基本的代码示例:
```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 ZipFiles {
public static void main(String[] args) {
String sourceFolder = "C:\\myfolder";
String outputZipFile = "C:\\myfolder.zip";
zipFolder(sourceFolder, outputZipFile);
}
public static void zipFolder(String sourceFolder, String outputZipFile) {
try {
FileOutputStream fos = new FileOutputStream(outputZipFile);
ZipOutputStream zos = new ZipOutputStream(fos);
File folder = new File(sourceFolder);
for (File file : folder.listFiles()) {
addFileToZip(file, zos);
}
zos.close();
fos.close();
System.out.println("Folder has been compressed into Zip file: " + outputZipFile);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void addFileToZip(File file, ZipOutputStream zos) throws IOException {
if (file.isDirectory()) {
for (File innerFile : file.listFiles()) {
addFileToZip(innerFile, zos);
}
} else {
byte[] buffer = new byte[1024];
FileInputStream fis = new FileInputStream(file);
zos.putNextEntry(new ZipEntry(file.getName()));
int length;
while ((length = fis.read(buffer)) > 0) {
zos.write(buffer, 0, length);
}
zos.closeEntry();
fis.close();
}
}
}
```
在这个例子中,`ZipFiles` 类拥有一个 `zipFolder` 方法,它使用 Java IO 类读取指定文件夹中的所有文件,压缩它们,并将其写入到指定的 `outputZipFile` 文件中。
要 compress 某个文件夹,只需调用 `zipFolder` 方法,将 `.zip` 文件名和要被 `zip` 压缩的文件夹的路径传入即可。
阅读全文