gpt4 book ai didi

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

转载 作者:知者 更新时间:2024-03-16 16:55:31 34 4
gpt4 key购买 nike

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

ZipFile.getInputStream介绍

[英]Returns an input stream on the data of the specified android.ZipEntry.
[中]返回指定android的数据的输入流。齐彭特里。

代码示例

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

/**
   * read the dex file from byte array, if the byte array is a zip stream, it will return the content of classes.dex
   * in the zip stream.
   * 
   * @param data
   * @return the content of classes.dex
   * @throws IOException
   */
  public static byte[] readDex(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 data;
    } else if ("PK".equals(new String(data, 0, 2, StandardCharsets.ISO_8859_1))) {// ZIP
      try (ZipFile zipFile = new ZipFile(data)) {
        ZipEntry classes = zipFile.findFirstEntry("classes.dex");
        if (classes != null) {
          return toByteArray(zipFile.getInputStream(classes));
        } else {
          throw new IOException("Can not find classes.dex in zip file");
        }
      }
    }
    throw new IOException("the src file not a .dex or zip file");
  }
}

代码示例来源: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

try (InputStream is = zipFile.getInputStream(e)) {
  while (true) {
    int c = is.read(buffer);

代码示例来源: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

/**
   * read the dex file from byte array, if the byte array is a zip stream, it will return the content of classes.dex
   * in the zip stream.
   * 
   * @param data
   * @return the content of classes.dex
   * @throws IOException
   */
  public static byte[] readDex(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 data;
    } else if ("PK".equals(new String(data, 0, 2, StandardCharsets.ISO_8859_1))) {// ZIP
      try (ZipFile zipFile = new ZipFile(data)) {
        ZipEntry classes = zipFile.findFirstEntry("classes.dex");
        if (classes != null) {
          return toByteArray(zipFile.getInputStream(classes));
        } else {
          throw new IOException("Can not find classes.dex in zip file");
        }
      }
    }
    throw new IOException("the src file not a .dex or zip file");
  }
}

代码示例来源: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");
}

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com