import java.io.*;
import java.util.Enumeration;
import java.util.zip.*;
public class ZipFileUtils {
/**
* 列出ZIP文件中的所有文件和目录
*
* @param zipFilePath ZIP文件的路径
*/
public static void listFilesInZip(String zipFilePath) {
try (ZipFile zipFile = new ZipFile(zipFilePath)) {
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
System.out.println(entry.getName());
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 从ZIP文件中提取指定的文件到目标目录
*
* @param zipFilePath ZIP文件的路径
* @param entryName ZIP文件中的条目名称(要提取的文件)
* @param destDir 目标目录的路径
*/
public static void extractFileFromZip(String zipFilePath, String entryName, String destDir) {
try (ZipFile zipFile = new ZipFile(zipFilePath)) {
ZipEntry entry = zipFile.getEntry(entryName);
if (entry != null) {
File destFile = new File(destDir, entry.getName());
if (!destFile.getParentFile().exists()) {
destFile.getParentFile().mkdirs();
}
try (InputStream in = zipFile.getInputStream(entry);
OutputStream out = new FileOutputStream(destFile)) {
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
}
} else {
System.out.println("Entry not found in the ZIP file: " + entryName);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String zipFilePath = "path/to/your/zipfile.zip";
String destDir = "path/to/extract/to";
// 列出ZIP文件中的所有文件和目录
listFilesInZip(zipFilePath);
// 从ZIP文件中提取指定的文件到目标目录
extractFileFromZip(zipFilePath, "path/in/zipfile/to/yourfile.txt", destDir);
}
}
java 读取zip文件工具类
最新推荐文章于 2024-06-21 11:44:55 发布