Java ziputil的zip方法
时间: 2023-08-22 08:05:15 浏览: 134
Java的ZipUtil类提供了zip方法,用于将多个文件或目录压缩成一个zip文件。以下是zip方法的示例代码:
```java
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipUtil {
public static void zip(String[] files, String zipFile) throws IOException {
FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(fos);
byte[] buffer = new byte[1024];
for (String filePath : files) {
File srcFile = new File(filePath);
FileInputStream fis = new FileInputStream(srcFile);
// Add zip entry
zos.putNextEntry(new ZipEntry(srcFile.getName()));
// Read data from source file and write to zip file
int length;
while ((length = fis.read(buffer)) > 0) {
zos.write(buffer, 0, length);
}
// Close the zip entry and input stream
zos.closeEntry();
fis.close();
}
// Close the zip output stream
zos.close();
}
public static void main(String[] args) throws IOException {
String[] filesToZip = {"file1.txt", "file2.txt", "dir1", "dir2/file3.txt"};
String zipFileName = "myZipFile.zip";
zip(filesToZip, zipFileName);
}
}
```
在上面的示例代码中,我们传递了一个包含要压缩的文件和目录路径的String数组,以及所需的zip文件名。然后,我们创建一个FileOutputStream和ZipOutputStream来写入zip文件。我们循环遍历传递的文件和目录,为每个文件创建一个ZipEntry,并将其添加到ZipOutputStream中。接下来,我们从源文件中读取数据并写入zip文件,最后关闭ZipEntry和FileInputStream。最后,我们关闭ZipOutputStream。
请注意,如果要压缩目录,则应将目录路径添加到文件路径中,并在添加ZipEntry时使用目录名称而不是文件名称。