getResourceAsStream返回null但File.canRead()返回true

时间:2014-01-21 20:28:37

标签: java file-io

我有当前的文件结构

-Boggle

*src
    -java files
*data
    -dictionary.txt
*derived
     -Boggle.jar

打字

System.out.println(new File(".").getAbsolutePath()

给出

/惊奇/派生/

我正在尝试使用

加载dictionary.txt文件
getClass().getResourceAsStream("../data/dictionary.txt")

但这会返回null

然而,当我尝试

new File("../data/dictionary.txt").canRead()

这会返回true。

非常感谢帮助!

1 个答案:

答案 0 :(得分:1)

data/dictionary不被视为嵌入式资源,而只是一个外部资源,在本例中是一个简单的文件

如果您想使用getResource,则data/dictionary需要包含在类路径的上下文中。

您可以通过在其中一个应用程序Jar文件中包含data/dictionary或将类路径设置为包含包含data目录的父目录

来执行此操作