2013-02-18 78 views
0

我做以下,更新捆綁資源文件

String str = "this is the new string"; 
URL resourceUrl = getClass().getResource("path_to_resource"); 
File file = new File(resourceUrl.toURI()); 
BufferedWriter writer = new BufferedWriter(new FileWriter(file)); 
writer.write(xml); 
writer.close(); 

在上面的代碼我想寫包含在我的Java包中的一個資源文件。執行代碼後,我的程序執行得很好,但文件只是更新了web-INF中的屬性文件,而不是它存儲的包。任何人都可以請幫我看看我怎麼能做到這一點,或者我在這裏做錯了什麼?非常感謝。

+0

不太清楚你想在這裏實現什麼,但getClass()。getResource(..)會在你的類路徑中選取第一個匹配的資源。如果這不是你想要的,那麼你可能不得不看另一種指定想要的文件的方式。另外,如果資源位於jar中,那麼你的構造會失敗,因爲URL不能作爲File訪問。 – Steinar 2013-02-18 21:54:04

回答

1

您不應該試圖寫入與應用程序類一起存儲的文件。根據應用程序服務器,您嘗試寫入的位置可能不可寫,或者應用程序可能從應用程序存檔(.war文件)運行。

您應該使用外部文件夾來存儲配置和其他應用程序數據。通常,您可以通過環境變量或部署期間指定的屬性來指定此文件夾。

+0

非常感謝您的回覆,但我還有一個問題,我試圖通過這樣做來實現,是修改屬性文件以便在運行時由我的應用程序讀取。你能建議一個正確的方法來做到這一點? – RegisteredUser 2013-02-19 14:26:46

+0

你不清楚。您在什麼時候嘗試修改此文件。 – 2013-02-20 00:14:24