更新Web应用程序中的属性文件

时间:2012-12-19 10:53:34

标签: java tomcat web-applications properties-file

我有一个属性文件(在rsources文件夹下),我在其中存储一个变量(key = value),

我需要在用户插入新值或更新旧值时更新它,我可以这样做吗? 我有疑问,因为它是一个Web应用程序,所以它只是在服务器中部署的战争。那么如何才能访问.properties文件并直接从代码中更改它?

如果不可能,还有另一种解决方案吗?

3 个答案:

答案 0 :(得分:4)

也许用户可以在文件系统中提供覆盖属性文件,其值将覆盖打包的默认属性文件。

结帐Apache Commons Configurationpermits this capability

  

通常,您希望提供一组基本配置值,但是   允许用户轻松覆盖它们的特定环境。   一种方法是将默认值硬编码到代码中,并且   然后提供一个覆盖它的属性文件。但是,这个   是一种非常严格的做事方式。相反,与   CompositeConfiguration可以提供许多不同的设置方式   配置。

答案 1 :(得分:1)

您可以在数据库中创建一个新表(例如T_PROPERTIES),并在表中添加/修改行,而不是修改属性文件。 使用2列,键和值定义表,并相应地更改记录。

答案 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 key,String value);  -get(Object key);

完成后,您只需在属性Object上调用save方法即可。 你需要一个OutputStream。