Java中解压缩文件的方法
在Java中,你可以使用java.util.zip
包中的类来解压文件。以下是一个简单的方法,它接受一个ZIP文件作为输入,并将其解压到指定的目录中。
import java.io.*;
import java.util.zip.*;
public class UnzipUtility {
public static void unzip(String zipFilePath, String destDir) {
File dir = new File(destDir);
// 创建输出目录如果它不存在
if (!dir.exists()) dir.mkdirs();
ZipInputStream zipIn = null;
BufferedOutputStream bos = null;
File file = new File(zipFilePath);
try {
zipIn = new ZipInputStream(new FileInputStream(file));
ZipEntry zipEntry = zipIn.getNextEntry();
while (zipEntry != null) {
String filePath = destDir + File.separator + zipEntry.getName();
if (!zipEntry.isDirectory()) {
bos = new BufferedOutputStream(new FileOutputStream(filePath));
byte[] bytesIn = new byte[4096];
int read;
while ((read = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read);
}
} else {
File dirNow = new File(filePath);
dirNow.mkdirs();
}
zipIn.closeEntry();
zipEntry = zipIn.getNextEntry();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (zipIn != null) zipIn.close();
if (bos != null) bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
String zipFilePath = "path/to/your/zipfile.zip";
String destDir = "output/directory/path";
unzip(zipFilePath, destDir);
}
}
这段代码定义了一个unzip
方法,它接受ZIP文件的路径和解压目标目录作为参数。然后它创建了一个ZipInputStream
来读取ZIP文件,并逐个处理其中的条目。如果条目不是目录,它会创建一个BufferedOutputStream
来将解压的内容写入目标文件。如果条目是目录,它会在目标目录中创建相应的子目录。最后,在所有文件解压后,它关闭所有的流。
评论已关闭