0

我正在尝试阅读带有 .zip 文件的 Zip 存档ZipInputStream。我循环浏览所有条目,没有任何问题,如下所示:

  try {
                while((ze = zis.getNextEntry()) != null) {
                    Log.v(this.toString(), "Name = " + name);

                } 
       } catch (IOException e) {
            // TODO Auto-generated catch block
            //e.printStackTrace();
            Log.e(this.toString(), "IOException in creating ZipEntry.");
        }   

当我尝试使用该zis变量在另一个函数中读取相同的 zip 文件时,以与上述相同的方式,行ze = zis.getNextEntry()返回null. 这是可以理解的,因为已经到达了流的末尾。

我的问题:
1. 我如何“倒带”流?
2. 是否有替代方法来创建临时ZipInputStream文件并在下一个需要我再次读取 zip 文件的函数中使用它?

4

1 回答 1

1

ZipInputStream在Java中没有办法倒带。

唯一的选择是将代码重组为只需读取一次流。这很可能对您有利(取决于您的情况),因为它不需要多次解压缩数据。

也许您可以将数据解压缩到临时缓存目录。

于 2013-07-25T13:42:27.790 回答