我已经检查了Java api文档,它说getNextEntry()读取下一个ZIP文件条目,并将流定位在条目数据的开头。

“读取NEXT压缩文件”是什么意思?为什么是“ NEXT”?

我有这段代码,这行的意义是什么?ze = zin.getNextEntry()

  public void unzip() {
    try  {
      FileInputStream fin = new FileInputStream(_zipFile);
      ZipInputStream zin = new ZipInputStream(fin);
      ZipEntry ze = null;
      while ((ze = zin.getNextEntry()) != null) {
        Log.v("Decompress", "Unzipping " + ze.getName());

        if(ze.isDirectory()) {
          _dirChecker(ze.getName());
        } else {
          FileOutputStream fout = new FileOutputStream(_location + ze.getName());
          for (int c = zin.read(); c != -1; c = zin.read()) {
            fout.write(c);
          }

          zin.closeEntry();
          fout.close();
        }

      }
      zin.close();
    } catch(Exception e) {
      Log.e("Decompress", "unzip", e);
    }

  }

最佳答案

它读取zip文件中的下一个条目。

压缩文件在逻辑上包含其他主要文件-因此foo.zip可以包含文件a.txtb.txtgetNextEntry()将您移至存档中的下一个文件。

(我从未特别热衷于使用ZipInputStream的继承来建模InputStream的方式,但这是另一回事。)

关于java - getNextEntry()有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14914479/

10-11 10:29