2013-08-01 75 views
0

我需要读取zip文件中的文件。我使用的是ZipInputStream,我通过文件while循环迭代从zip读取文件抛出异常closeEntry

while((ze = zipFile.getNextEntry()) != null) { 
    //do stuff on file 
    zipFile.closeEntry(); 
} 

当档案是邻字节的文件,我正在逐渐closeEntry()以下异常;

java.util.zip.ZipException: invalid stored block lengths 

你能帮我吗?

+0

你试过几个zip文件?也许你正在使用的文件有问题。 – jazzbassrob

+0

是的,我试过了。如果我在该文件中添加一些文本,则没有问题。我有很多测试文件,并且问题仅在那些包含内部0字节文件的问题上。在调试器中一切顺利,直到调用'closeEntry()' –

+0

有什么帮助? –

回答

0

无法复制(可能是你的压缩文件未正确创建):

ZipInputStream zis = new ZipInputStream(new FileInputStream("D:\\FolderWithEmptyFile.zip")); 

    try 
    { 
     for (ZipEntry ze; (ze = zis.getNextEntry()) != null;) 
     { 
      System.out.println(ze.getName()); 
      // Above prints 
      // FolderWithEmptyFile/ 
      // FolderWithEmptyFile/EmptyFile.txt 

      zis.closeEntry(); 
     } 
    } 
    finally 
    { 
     zis.close(); 
    } 
相关问题