gpt4 book ai didi

Java getClassLoader().getResourceAsStream(文件名)

转载 作者:行者123 更新时间:2023-12-01 20:25:11 24 4
gpt4 key购买 nike

我有一个 Maven 项目。我的整个代码位于文件夹 {PROJECT_ROOT}/src/main/java 中。当我编写代码时:

InputStream input = VertxApp.class.getClassLoader().getResourceAsStream("file.txt");
String result = getStringFromInputStream(input);
System.out.println(result);

我看到代码在文件夹中查找名为“file.txt”的文件:{PROJECT_ROOT}/src/main/resources。

我的问题是为什么。为什么它不查找 {PROJECT_ROOT}/src/main/java 或 ${PROJECT_ROOT} 中的文件?

最佳答案

大多数 Maven 项目都遵循以下结构

src/
main/
java/
resources/

您打算将非代码资源与代码分开。 getResourceAsStream 方法假定遵循此标准,因此它从 resources/ 目录开始查找您的资源。

参见Why are project layout resources are kept separate from Java sources?一些更详细的想法。

关于Java getClassLoader().getResourceAsStream(文件名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954565/

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