gpt4 book ai didi

java - 读取包含在 jar 内的文件

转载 作者:行者123 更新时间:2023-11-30 04:20:26 25 4
gpt4 key购买 nike

我有一个 jar 文件,例如 archive1.jar,位于 /home/ext/libs 中。它有几个类,还有一个位于 jar 层次结构根部的文本文件 (data.txt)。该 jar 的其中一个类(例如 Data.java)读取该文件以启动某些内部数据结构。

现在,archive1.jar 作为另一个名为 Parsing 的程序的库包含在内,该程序在完全不同的目录 /home/progs 中执行(archive1.jar)。 jar 是在程序的执行命令的类路径中指定的)。

我面临的问题是,现在 Data.java 无法再理解 data.txt 的路径,因为它假设 data.txt 位于 /home/progs 中,而不是位于 archive1 中。 jar 位于 /home/ext/libs 中。

我的问题是我应该在 Data.java 内部进行哪些更改才能使其理解 data.txt 位于 archive1.jar 内?简而言之,如何让Data.java能够读取archive1.jar内的data.txt,无论调用程序在哪里。

注意:在线程Java资源作为文件中,情况有点不同,并且也没有回答如何读取jar内的文件。有人说这可能是不可能的。

最佳答案

访问 JAR 文件中的资源文件的方法是使用 getClass().getResourceAsStream() 。使用此功能可确保从存档而不是从文件系统加载资源。例如,如果 data.txtJAR 存档中的 Data.java 位于同一位置,那么您将访问 data.txt 是这样的

InputStream is=getClass().getResourceAsStream("data.txt");

一旦您获得了资源的InputStream,就可以按照您喜欢的方式继续操作。

关于java - 读取包含在 jar 内的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17181432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com