【发布时间】:2017-12-08 00:23:06
【问题描述】:
如果在getResourceAsStream(String name) 中的搜索路径字符串中使用File.separator,有人可以解释为什么Java 找不到资源吗?我有这个代码:
private final String RESOURCE_PATH = File.separator + "dir" + File.separator;
private final String SAME_PATH_HARDCODED = "/dir/";
public void findResource(String fileName) {
InputStream file1 = ThisClass.class
.getResourceAsStream(RESOURCE_PATH + fileName); // returns null
InputStream file2 = ThisClass.class
.getResourceAsStream(SAME_PATH_HARDCODED + fileName); // returns file
}
我发现File.separator 使用了反斜杠而不是斜杠。但我希望 File.separator 更灵活。在这种情况下,它不是。我想知道,为什么。非常感谢。
【问题讨论】:
-
我也试过了,但没有任何异常。
-
没有异常,因为这个方法找不到返回null。