我需要能够访问存储在已编译 jar 文件中的文件。我已经想出如何将文件添加到项目中,但我将如何在代码中引用它?我如何将文件从 jar 文件复制到用户硬盘上的某个位置?我知道有许多方法可以访问文件(FileInputStream、FileReader 等),但我不知道如何查看文件本身。
原文由 LRFLEW 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 getResource() 获取类路径上文件的 URL,或使用 getResourceAsStream() 获取 InputStream。
例如:
BufferedReader reader = new BufferedReader(new InputStreamReader(
this.getClass().getResourceAsStream("foo.txt")));
原文由 Isaac Truett 发布,翻译遵循 CC BY-SA 2.5 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
你可以使用这样的东西:
InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileFromJarFile);
如果 foo.txt 位于 JAR 文件的根目录中,您将使用:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("foo.txt");
我相信该类与资源位于同一个 JAR 文件中。