com.googlecode.d2j.util.zip.ZipFile.entries()方法的使用及代码示例

x33g5p2x  于2022-02-05 转载在 其他  
字(3.1k)|赞(0)|评价(0)|浏览(120)

本文整理了Java中com.googlecode.d2j.util.zip.ZipFile.entries()方法的一些代码示例,展示了ZipFile.entries()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZipFile.entries()方法的具体详情如下:
包路径:com.googlecode.d2j.util.zip.ZipFile
类名称:ZipFile
方法名:entries

ZipFile.entries介绍

暂无

代码示例

代码示例来源:origin: pxb1988/dex2jar

public static BaseDexFileReader open(byte[] data) throws IOException {
  if (data.length < 3) {
    throw new IOException("File too small to be a dex/zip");
  }
  if ("dex".equals(new String(data, 0, 3, StandardCharsets.ISO_8859_1))) {// dex
    return new DexFileReader(data);
  } else if ("PK".equals(new String(data, 0, 2, StandardCharsets.ISO_8859_1))) {// ZIP
    TreeMap<String, DexFileReader> dexFileReaders = new TreeMap<>();
    try (ZipFile zipFile = new ZipFile(data)) {
      for (ZipEntry e : zipFile.entries()) {
        String entryName = e.getName();
        if (entryName.startsWith("classes") && entryName.endsWith(".dex")) {
          if (!dexFileReaders.containsKey(entryName)) { // only the first one
            dexFileReaders.put(entryName, new DexFileReader(toByteArray(zipFile.getInputStream(e))));
          }
        }
      }
    }
    if (dexFileReaders.size() == 0) {
      throw new IOException("Can not find classes.dex in zip file");
    } else if (dexFileReaders.size() == 1) {
      return dexFileReaders.firstEntry().getValue();
    } else {
      return new MultiDexFileReader(dexFileReaders.values());
    }
  }
  throw new IOException("the src file not a .dex or zip file");
}

代码示例来源:origin: pxb1988/dex2jar

byte[] data = Files.readAllBytes(new File(remainingArgs[0]).toPath());
try(com.googlecode.d2j.util.zip.ZipFile zipFile = new com.googlecode.d2j.util.zip.ZipFile(data)) {
  for (com.googlecode.d2j.util.zip.ZipEntry e : zipFile.entries()) {
    ZipEntry nEntry = new ZipEntry(e.getName());

代码示例来源:origin: pxb1988/dex2jar

@Test
public void test0() throws IOException {
  byte[] data = ZipUtil.toByteArray(BadZipEntryFlagTest.class.getResourceAsStream("/bad.zip"));
  try (ZipFile zip = new ZipFile(data)) {
    for (com.googlecode.d2j.util.zip.ZipEntry e : zip.entries()) {
      System.out.println(e);
      if (!e.isDirectory()) {
        zip.getInputStream(e).read();
      }
    }
  }
}

代码示例来源:origin: SparkInLee/dexdiff

public static BaseDexFileReader open(byte[] data) throws IOException {
  if (data.length < 3) {
    throw new IOException("File too small to be a dex/zip");
  }
  if ("dex".equals(new String(data, 0, 3, StandardCharsets.ISO_8859_1))) {// dex
    return new DexFileReader(data);
  } else if ("PK".equals(new String(data, 0, 2, StandardCharsets.ISO_8859_1))) {// ZIP
    TreeMap<String, DexFileReader> dexFileReaders = new TreeMap<>();
    try (ZipFile zipFile = new ZipFile(data)) {
      for (ZipEntry e : zipFile.entries()) {
        String entryName = e.getName();
        if (entryName.startsWith("classes") && entryName.endsWith(".dex")) {
          if (!dexFileReaders.containsKey(entryName)) { // only the first one
            dexFileReaders.put(entryName, new DexFileReader(toByteArray(zipFile.getInputStream(e))));
          }
        }
      }
    }
    if (dexFileReaders.size() == 0) {
      throw new IOException("Can not find classes.dex in zip file");
    } else if (dexFileReaders.size() == 1) {
      return dexFileReaders.firstEntry().getValue();
    } else {
      return new MultiDexFileReader(dexFileReaders.values());
    }
  }
  throw new IOException("the src file not a .dex or zip file");
}

相关文章