2012-12-19 37 views
0

我有一個屬性文件中,我放養變量(鍵=值)(rsources文件夾下),更新屬性文件在Web應用程序

我需要更新它,當用戶插入新價值或更新舊的,我可以這樣做嗎? 我有疑問,因爲它是一個Web應用程序,所以它只是一個部署在服務器中的戰爭。那麼如何才能訪問.properties文件並直接從代碼中進行更改?

如果這是不可能的,是否有另一種解決方案?

回答

4

也許用戶可以在文件系統中提供重寫屬性文件,其值將覆蓋打包的默認屬性文件。

結賬Apache Commons Configuration,其中permits this capability

通常情況下,您希望提供一組基本的配置值,但 允許用戶輕鬆覆蓋它們的特定環境。 嗯,一種方法是將默認值硬編碼到您的代碼中,然後 可以提供覆蓋此代碼的屬性文件。但是,這個 是一種非常僵硬的做事方式。相反,使用CompositeConfiguration,您可以提供許多不同的方法來設置配置。

+0

但是無法在客戶端機器 – AmiraGL

+0

中寫入任何地方?在臨時目錄中?臨時值在註冊表中?您部署到的臨時文件? –

+0

我的意思是任何地方 – AmiraGL

1

除了修改屬性文件外,還可以在數據庫中創建一個新表(例如T_PROPERTIES)並添加/修改表中的行。 用2列,鍵和值定義表並相應地更改記錄。

0

你可以讓用戶寫一個屬性文件,但我認爲它不是很乾淨。 java.util包中有一個名爲「Properties」的類,您可以使用此類從Web應用程序加載物理屬性文件的表示。

例如加載屬性文件,你可以使用下面的代碼:

public void loadProps(File pfile) throws IOException { 
    Properties props = new Properties(); 
    FileInputStream fis = new FileInputStream(propsFile); 
    props.load(fis);  
    fis.close(); 
} 

現在你可以使用內置的命令來操縱文件: -setProperty(String鍵,字符串值); -get(Object key);

完成它之後,您可以調用屬性Object的save方法。 您將需要一個OutputStream。