繁体   English   中英

getResourceAsStream 为现有文件返回 null

[英]getResourceAsStream returns null for an existing file

我尝试将资源文件作为流加载:

public static InputStream getClientSecretStream() {
    return ClientSecretsUtils.class.getClassLoader().getResourceAsStream("/Me/my_txt.json");
}

我有以下文件:

"/src/main/resources/Me/my_txt.json"

但是.getResourceAsStream("/Me/my_txt.json"); 返回空值

.getResourceAsStream("my_txt.json"); 也返回 null

我应该检查什么?

  • 类加载器具有绝对路径,没有标题斜线。
  • class.getResource 在相对路径时从该类的包目录路径开始,或者绝对路径需要起始斜杠。

所以:

return ClientSecretsUtils.class.getClassLoader()
           .getResourceAsStream("Me/my_txt.json");
return ClientSecretsUtils.class.getResourceAsStream("/Me/my_txt.json");

其中 ClientSecretsUtil 在同一个 jar 中。

查看 jar(是 zip 格式),并检查路径。 它必须区分大小写

您的目录约定遵循 maven 构建基础结构,所以我的猜测可能是意外的 my_txt.json.txt 之类的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM