当前位置: 首页 > 知识库问答 >
问题:

Java zipfile-zipexception:打开zip文件时出错

阚英睿
2023-03-14

我从服务器收到一个zip文件,它必须被处理。我可以手动解压缩它。所以我相信zip文件没有被破坏。

下面的代码从Zip文件中读取文件而不解压它。

import java.io.File;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class ZipFileReader {
    public static void main(String[] args) throws Exception{
        File file = new File("/Users/wire/data.zip"); 
        ZipFile zipFile = new ZipFile(file.getPath());//Getting error here
        for (Enumeration e = zipFile.entries(); e.hasMoreElements(); ) {
            ZipEntry entry = (ZipEntry) e.nextElement();
            System.out.println(entry.getName());
        }
    }
}
Exception in thread "main" java.util.zip.ZipException: error in opening zip file
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:225)
    at java.util.zip.ZipFile.<init>(ZipFile.java:155)
    at java.util.zip.ZipFile.<init>(ZipFile.java:126)
    at com.log.ZipFileReader.main(ZipFileReader.java:11)
data/
data/file/
data/file/log.txt
__MACOSX/
__MACOSX/data/
__MACOSX/data/file/
__MACOSX/data/file/._log.txt

注意:我从服务器收到的zip文件大小为5MB。但是一旦我解压缩并压缩回来,新的zip文件大小变成了8MB。

增加:

Apples-MacBook-Pro:~ test$ unzip -v data.zip
Archive:  data.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of data.zip or
        data.zip.zip, and cannot find data.zip.ZIP, period.

共有1个答案

景远航
2023-03-14

根据注释,该文件是一个名称错误的.tar.bz2文件,而不是真正的.zip文件。根据这个答案和这个答案,可以用Apache Commons压缩库解包。

 类似资料:
  • 问题内容: 我有一个Jar文件,其中包含其他嵌套的Jar。当我在该文件上调用新的构造函数时,出现一个异常: java.util.zip.ZipException:打开zip文件时出错 当我手动解压缩此Jar文件的内容并再次将其压缩时,它可以正常工作。 我仅在WebSphere 6.1.0.7和更高版本上看到此异常。相同的东西在tomcat和WebLogic上也可以正常工作。 当我使用JarInpu

  • 当我运行“grails run app-Dserver.port=8005”时,出现以下错误。请有人帮我。提前谢谢!! 打开zip文件或JAR清单时出错,缺少:E:/work/ThirdParty/grails-2.4.3/lib/org。springframework/springloaded/jars/springloaded-1.2.0。初始化VM代理库时发生RELEAS E.jar错误,无

  • 我试图用AS0.8.6导入一个新的gradle Android项目(也尝试过0.8.7)。当导入时,我得到以下错误 从我的研究来看,这很可能是下载gradle包装器的问题。 根据SO上的另一篇文章(https://stackoverflow.com/a/23839694/413254)的建议,我尝试删除~/.gradle文件夹。在重新启动时,同样的事情会发生。 如果我尝试运行,我会得到以下错误:

  • 问题内容: 当我在Tomcat上执行display.war文件时,我在Catalina.2011-03-30.log中收到此错误。错误如下所示: 提前致谢。 问题答案: 不幸的是,原因和解决方案并不像Buhake Sindi所建议的 那么 明显。我之前在几个论坛中都多次看到此问题。我自己至少经历过一次。Google目前对确切的异常消息给出了500多次匹配。一切都没有答案。但是,有一些提示表明它可以

  • 我试图在我的Ant项目中使用Flyway来运行DDL脚本。我设法配置了类路径,以便Flyway可以看到迁移脚本。运行flyway:migrate任务时,出现以下异常: 最后有一个建议: 但我的项目不是Java应用程序,我没有Java源代码可以用javac编译。Flyway是否需要将迁移脚本打包在jar中?它不能简单地用SQL语句运行一些文本文件吗?

  • 问题内容: 我正在https://developers.google.com/appengine/docs/java/webtoolsplatform#dynamic_web_project上的“在服务器上运行项目”的步骤中,遇到一个问题: 初始化VM代理库失败,初始化失败:仪器打开zip文件或JAR清单丢失时出错:C:\ Program 另一个人在这里报告了类似的问题:打开zip文件或缺少JAR