java - 路径更改时 getResourceAsStream 返回 null

标签 java resources

一切都很好,直到我将文件移动到相对于资源文件夹的内部文件夹 /src/main/resources/settings

Files.newDirectoryStream(Paths.get("./src/main/resources/settings"), path -> path.toFile().isFile())
    .forEach(value -> {
        if (value.toString().endsWith("properties")) {
            Properties currentProp = new Properties();
            try {
                currentProp.load(this.getClass().getClassLoader().getResourceAsStream(value.toFile().getName()));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });

getResourceAsStream(value.toFile().getName()) - 返回 null

如上所述,如果文件直接位于资源文件夹中,则一切运行顺利。

最佳答案

我相信getResourceAsStream会找到与类路径相关的文件。假设您的文件夹结构是标准的 Maven 结构,您只需将 settings 传递给 Path.get。使用您现在拥有的代码,它将在 src/main/resources/src/main/resources/setting 中查找,这可能不是您想要的。

关于java - 路径更改时 getResourceAsStream 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57176763/

相关文章:

java - JSON 架构与开放 API - Java 支持

wpf - 如何访问属于资源一部分的 ContextMenu 中的 menuitem

android - 如何在 Android 中自动显示浅色和深色主题的不同资源?

java - 创建一个带有目录的java文件

java - 使用 NOLOCK 消除具有悲观锁定的应用程序的死锁

java - 使用插件程序 : GPL With LGPL?

android - "Social"Android 应用程序中的国际化 - 动态加载资源

c# - UWP - 动态加载resw资源文件

c# - 如何从 C# 中的资源播放 .mp3 文件?

Java 线程安全缓存,如果正在获取新缓存,则返回旧缓存