一切正常,直到我将文件相对于资源文件夹/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找到相对于类路径的文件。假设您的文件夹结构是标准行家,则只需要将settings传递给Path.get。现在有了代码,它将显示在src/main/resources/src/main/resources/setting中,而这可能并不是您想要的。

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

10-10 17:10