2014-01-21 147 views
2

我当前的文件结构的getResourceAsStream返回null但File.canRead()返回true

-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。

帮助将不胜感激!

+0

是'你的classpath的data'部分父目录这样做呢?你使用IDE吗?已宣布它为源文件夹? – A4L

回答

1

data/dictionary不被认为是嵌入的资源,但仅仅是外部资源,在这种情况下,一个简单的文件

如果你想使用getResource,然后data/dictionary需要包含类的范围内路径。

您可以通过应用程序Jar文件的一个内data/dictionary或设置类路径包括含有data目录

+0

我有一个build.xml文件。我试图通过添加 <文件集DIR =” 数据 “> //加入此 <包括名称=” dictionary.txt“/> //加入此 但我发现了意想不到的文件在路径警告和资源仍未找到 –

+0

对不起,在问题中的问题!有没有其他方法可以将此文件添加到类路径中? –

+0

你希望在类路径中包含'data'的父目录,以便在搜索文件时(使用'getResource'),你仍然在寻找'%classpath%/ data/dictionary.txt'或者让build脚本包含'data'目录,并将其内容作为Jar'ing过程的一部分 – MadProgrammer

相关问题