我有一个属性文件(在rsources文件夹下),我在其中存储一个变量(key = value),
我需要在用户插入新值或更新旧值时更新它,我可以这样做吗? 我有疑问,因为它是一个Web应用程序,所以它只是在服务器中部署的战争。那么如何才能访问.properties文件并直接从代码中更改它?
如果不可能,还有另一种解决方案吗?
答案 0 :(得分:4)
也许用户可以在文件系统中提供覆盖属性文件,其值将覆盖打包的默认属性文件。
结帐Apache Commons Configuration,permits 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。