我有一个属性文件(在 rsources 文件夹下),其中存储了一个变量(键=值),
当用户插入新值或更新旧值时,我需要更新它,我可以这样做吗?我有疑问,因为它是一个 Web 应用程序,所以它只是部署在服务器中的战争。那么如何访问 .properties 文件并直接从代码中更改它呢?
如果不可能,是否有其他解决方案?
我有一个属性文件(在 rsources 文件夹下),其中存储了一个变量(键=值),
当用户插入新值或更新旧值时,我需要更新它,我可以这样做吗?我有疑问,因为它是一个 Web 应用程序,所以它只是部署在服务器中的战争。那么如何访问 .properties 文件并直接从代码中更改它呢?
如果不可能,是否有其他解决方案?
也许用户可以在文件系统中提供一个覆盖属性文件,其值将覆盖打包的默认属性文件。
查看允许此功能的Apache Commons Configuration。
通常,您希望提供一组基本配置值,但允许用户轻松地为他们的特定环境覆盖它们。一种方法是将默认值硬编码到您的代码中,然后提供一个覆盖它的属性文件。但是,这是一种非常死板的做事方式。相反,使用 CompositeConfiguration,您可以提供许多不同的方式来设置配置。
您可以在数据库中创建一个新表(例如 T_PROPERTIES)并添加/修改表中的行,而不是修改属性文件。定义具有 2 列、键和值的表,并相应地更改记录。
You can let the user write to a properties file, but I don't think it's very clean to do. There is a class called "Properties" in the java.util package, you can use this class to load a representation of a physical properties file from your webapplication.
for example to load a properties file you could use following code:
public void loadProps(File pfile) throws IOException {
Properties props = new Properties();
FileInputStream fis = new FileInputStream(propsFile);
props.load(fis);
fis.close();
}
Now you can just use built in commands to manipulate the file: -setProperty(String key, String value); -get(Object key);
After you're done with it you can just call the save method on the properties Object. You will need an OutputStream for that.