我正在从另一个来源接收ZipInputStream,并且需要向另一个来源提供第一个条目的InputStream。

我希望能够在不将临时文件保存在设备上的情况下执行此操作,但是,我知道获取单个条目的InputStream的唯一方法是通过ZipFile.getInputStream(entry),并且因为我有一个ZipInputStream而不是ZipFile , 这是不可能的。

所以我最好的解决方案是

  • 将输入的InputStream保存到文件
  • 将文件读取为ZipFile
  • 使用第一个条目的InputStream
  • 删除临时文件。
  • 最佳答案

    想通了:

    完全有可能,对ZipInputStream.getNextEntry()的调用将InputStream置于条目的开头,因此提供ZipInputStream等同于提供ZipEntryInputStream
    ZipInputStream足够聪明,可以在下游处理条目的EOF。

    p。

    10-01 05:21