路径更改时,getResourceAsStream返回null

时间:2019-07-24 06:43:11

标签: 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

如前所述,如果直接位于资源文件夹中的文件运行顺利。

1 个答案:

答案 0 :(得分:0)

我相信getResourceAsStream找到相对于类路径的文件。假设您的文件夹结构是标准行家,则只需将settings传递到Path.get。有了您现在拥有的代码,它将在src/main/resources/src/main/resources/setting中显示,而这可能并不是您想要的。