以下是将 '/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();
    }
  }
}

代码解释:

  1. 首先定义了 zip 文件的路径和解压后输出的文件夹路径。
  2. 然后创建一个文件对象,用于表示输出文件夹。如果该文件夹不存在,则创建它。
  3. 创建一个 ZipInputStream 对象,它用于读取 zip 文件。
  4. 使用 getNextEntry() 方法获取 zip 文件中的下一个条目(即文件或文件夹)。
  5. 如果当前条目是一个文件夹,则创建该文件夹。如果当前条目是一个文件,则创建该文件并写入它。
  6. 继续使用 getNextEntry() 方法获取下一个条目,直到所有条目都被遍历完。
  7. 最后关闭 ZipInputStream 对象,并输出解压完成的提示信息。
Java 解压缩 /data/local/bootanimation.zip 文件到 /data/local/ 目录

原文地址: https://www.cveoy.top/t/topic/lDfq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录