Java 解压缩 /data/local/bootanimation.zip 文件到 /data/local/ 目录
以下是将 '/data/local/bootanimation.zip' 路径下的 zip 包解压并输出到 '/data/local/' 目录下的 Java 代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class UnzipExample {
public static void main(String[] args) {
String zipFilePath = "/data/local/bootanimation.zip"; // zip 文件的路径
String outputFolderPath = "/data/local/"; // 解压后输出的文件夹路径
try {
File folder = new File(outputFolderPath);
if (!folder.exists()) {
folder.mkdir(); // 如果输出文件夹不存在,就创建它
}
ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(zipFilePath));
ZipEntry zipEntry = zipInputStream.getNextEntry();
while (zipEntry != null) {
String fileName = zipEntry.getName();
File newFile = new File(outputFolderPath + fileName);
// 如果当前 zipEntry 是一个文件夹,则创建该文件夹
if (zipEntry.isDirectory()) {
newFile.mkdirs();
} else {
// 如果当前 zipEntry 是一个文件,则写入该文件
FileOutputStream fos = new FileOutputStream(newFile);
byte[] buffer = new byte[1024];
int len;
while ((len = zipInputStream.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
}
zipEntry = zipInputStream.getNextEntry();
}
zipInputStream.closeEntry();
zipInputStream.close();
System.out.println("文件解压完成!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
代码解释:
- 首先定义了 zip 文件的路径和解压后输出的文件夹路径。
- 然后创建一个文件对象,用于表示输出文件夹。如果该文件夹不存在,则创建它。
- 创建一个 ZipInputStream 对象,它用于读取 zip 文件。
- 使用 getNextEntry() 方法获取 zip 文件中的下一个条目(即文件或文件夹)。
- 如果当前条目是一个文件夹,则创建该文件夹。如果当前条目是一个文件,则创建该文件并写入它。
- 继续使用 getNextEntry() 方法获取下一个条目,直到所有条目都被遍历完。
- 最后关闭 ZipInputStream 对象,并输出解压完成的提示信息。
原文地址: https://www.cveoy.top/t/topic/lDfq 著作权归作者所有。请勿转载和采集!