访问jar文件中的文件?

新手上路,请多包涵

我需要能够访问存储在已编译 jar 文件中的文件。我已经想出如何将文件添加到项目中,但我将如何在代码中引用它?我如何将文件从 jar 文件复制到用户硬盘上的某个位置?我知道有许多方法可以访问文件(FileInputStream、FileReader 等),但我不知道如何查看文件本身。

原文由 LRFLEW 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 373
2 个回答

你可以使用这样的东西:

InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileFromJarFile);

如果 foo.txt 位于 JAR 文件的根目录中,您将使用:

InputStream is = this.getClass().getClassLoader().getResourceAsStream("foo.txt");

我相信该类与资源位于同一个 JAR 文件中。

原文由 typo.pl 发布,翻译遵循 CC BY-SA 2.5 许可协议

您可以使用 getResource() 获取类路径上文件的 URL,或使用 getResourceAsStream() 获取 InputStream。

例如:

 BufferedReader reader = new BufferedReader(new InputStreamReader(
    this.getClass().getResourceAsStream("foo.txt")));

原文由 Isaac Truett 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏