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

如何在jar文件中读取zip文件

封梓
2023-03-14

我有一个zip文件(在一个jar文件中),我想读取init。我知道我可以使用getResourceAsStream(…)轻松读取txt文件,避免“URI不分层”错误。但现在确定我该如何为zip文件做到这一点。

下面是我的代码,但当我将代码导出到runnable jar并运行它时,它会抛出“URI非层次错误”。

URL fileLocation = ChemicalSynonyms.class.getClassLoader().getResource("sciome/workbench/resources/chemicalSynonym/" + strFileName);
        File file = new File(fileLocation.toURI());

        // it is a zip file
        ZipFile zipFile = new ZipFile(file);
        Enumeration<? extends ZipEntry> entries = zipFile.entries();
        ZipEntry entry = entries.nextElement();
        InputStream is = zipFile.getInputStream(entry);
        BufferedReader buf = new BufferedReader(new InputStreamReader(is));
        String lineJustFetched = null;
        String[] wordsArray;

        // read each line
        lineJustFetched = buf.readLine();

共有1个答案

芮瑾瑜
2023-03-14

这可以通过使用扫描仪来完成。例子:

        InputStream is = MainClass.class.getClassLoader().getResourceAsStream(file location with zip file name);
        ZipInputStream zis = new ZipInputStream(is);
        ZipEntry ze = zis.getNextEntry();
        Scanner sc = new Scanner(zis);

        String[] wordsArray;
        while (sc.hasNextLine())
        {
           ....
        }
 类似资料:
  • 问题内容: 我在JAR文件中有一个文件。这,例如。 我该如何访问?我的源代码是: 问题答案: 您不能使用File,因为此文件在文件系统上并不独立存在。相反,您需要getResourceAsStream(),如下所示:

  • 问题内容: 我有一个Web程序,希望用户能够在其中导入文件,并且可以从文件中提取某些文件。我发现了两个类库: 和。据我了解,WAR文件是一个特殊的JAR文件,这是一个特殊的ZIP文件。那么使用会更好吗?如果ZIP和JAR文件几乎相同,为什么需要两个不同的库? 问题答案: 如果查看JarFile API,您会发现它是ZipFile类的子类。 jar特定的类大多只是添加jar特定的功能,例如对清单文件

  • 问题内容: 我有一堆iReport源代码(jrxml)通过以下路径位于工作区中: 当我将源代码打包到jar文件中时。我将拥有以下文件结构目录: 在我的源代码中,我具有以下代码来验证jrxml文件的存在: 当我通过命令执行此jar文件时: 我碰到一个错误提示,说特定的jrxml_file不存在。 我的疑问: 我只是想知道我是否允许读取位于MyJar.jar中的jrxml_file? 在读取jrxml

  • 在我的maven项目中,我有一个PDF文件,它位于文件夹中。我的函数从文件夹读取PDF文件,并根据用户的数据在文档中添加一些值。 此项目使用打包为文件,并在我的其他Spring Boot应用程序中用作依赖项。 在我的Spring启动项目中,我创建了将在PDF上执行一些工作的类的instace。一旦PDF文件上的所有工作都完成,并且当PDF文件保存在文件系统上时,它始终是空的(所有页面都是空白的)。

  • 问题内容: 我必须使用SFTP从ZIP存档(只有一个文件,我知道它的名称)中获取文件内容。我唯一拥有的是ZIP的。大多数示例说明如何使用以下语句获取内容: 但是正如我所说,我的本地计算机上没有ZIP文件,也不想下载它。是够看了? UPD: 这是我的方法: 问题答案: 好吧,我已经做到了: 它可以帮助我阅读ZIP的内容而无需写入另一个文件。

  • 我必须使用SFTP从ZIP存档(只有一个文件,我知道它的名称)获取文件内容。我唯一拥有的是ZIP的InputStream。大多数示例显示了如何使用此语句获取内容: 但正如我所说,我的本地机器上没有ZIP文件,我不想下载它。输入流是否足以读取? UPD:我就是这样做的: