2014-01-21 149 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

相關問題