【问题标题】:Rewinding ZipInputStream - Android倒带 ZipInputStream - Android
【发布时间】:2013-07-25 13:24:27
【问题描述】:

我正在尝试使用 ZipInputStream 读取 Zip 存档。我循环浏览所有条目,没有任何问题,如下所示:

  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 文件的函数中使用它?

【问题讨论】:

    标签: android zipinputstream


    【解决方案1】:

    在 Java 中无法回退 ZipInputStream

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

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

    【讨论】:

    • 将数据解压到临时缓存?听起来很有趣。该缓存将驻留在哪里?我可以把它放在 SDCard 上吗?
    猜你喜欢
    • 1970-01-01
    • 2013-01-26
    • 2013-06-25
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    相关资源
    最近更新 更多