我需要能够访问存储在已编译 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 许可协议
8 回答6.5k 阅读
4 回答703 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答972 阅读✓ 已解决
你可以使用这样的东西:
InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileFromJarFile);
如果 foo.txt 位于 JAR 文件的根目录中,您将使用:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("foo.txt");
我相信该类与资源位于同一个 JAR 文件中。