2011-06-24 21 views
0

這些屬性讓我瘋狂。我到處讀書,甚至加載的屬性應該沒有問題,只是使用:屬性讓我瘋狂。無法保存! 「FileNotFound」

Properties p = new Properties(); 
p.load(new FileInputStream("filename.properties"); 

雖然在我的情況下,它的工作。 Java沒有找到該文件,它位於類目錄中!這就是爲什麼我必須與Assetmanager一起使用它:

String defaultProfileProperties = "filename.properties"; 
Resources resources = this.getResources(); 
AssetManager assetManager = resources.getAssets(); 
final Properties properties = new Properties(); 

try { 
    InputStream inputStream = assetManager.open(defaultProfileProperties); 
    properties.load(inputStream); 
} catch (IOException e) { 
    System.err.println("Failed to open " + defaultProfileProperties + " property file"); 
    e.printStackTrace(); 
} 

將文件名.properties放在資產文件夾中。 (out,comment)... 我嘗試使用FileOutputStream,將路徑設置爲「filename.properties」或「assets」 /filename.properties」。他們都沒有工作。我甚至在這裏和那裏添加了斜線,但沒有任何幫助!我沒有在網上找到任何教程,也沒有發現同樣的問題!

你能幫我嗎?我猜這是如此簡單的事情,但我不知道如何......等等

回答

1

如果你用FileInputStream打開一個文件,那麼起始目錄(相對路徑)是基於工作目錄時的你啓動了java,而不是類路徑。使用資源打開文件將引用類路徑條目。

您是否嘗試過使用FileInputStream()時使用完整路徑?試試看看它是否有效,如果有效,那麼你需要在啓動時設置工作目錄,或者通過啓動目錄的相對路徑引用文件。

0

試試這個:

InputStream in = this.getClass().getResourceAsStream("filename.properties"); 
    Properties p = new Properties(); 
    p.load(in);