我想将新属性添加到现有文件中。每当我添加新属性时,整个文件都会被覆盖。有没有办法更新文件而不是覆盖属性。
FileOutputStream fo = new FileOutputStream(PROPERTIES_FILE);
Properties pr = new Properties();
pr.setProperty("Key1", "KeyValue");
try {
pr.store(fo, " Comments");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
(1)现在,如果我想添加一个名为Key2的新属性并设置一个值KeyValue2。有可能吗?
(2)当我在tomcat中部署时,只有当我给出绝对路径时,文件才会更新。有没有办法在运行时找到文件位置。因为当我运行测试用例时,文件将在本地出现,路径将不同。
(3)有没有办法在此方面利用类路径。
提前致谢!
答案 0 :(得分:0)
**我正在写下来,因为我找不到明确的答案**
(1)现在,如果我想添加一个名为Key2的新属性并设置一个值KeyValue2。有可能吗?
**是的,这是可能的。理解这里的关键是,属性对象将存储在调用'store'api上。这附加不会发生。该文件将被属性对象的内容覆盖。 API不支持附录。 解决这个问题的方法是: 1)从同一文件加载属性 2)更新新属性或现有属性 3)然后使用输出流存储
以这种方式,文件的内容不会丢失**
(2)当我在tomcat中部署时,只有当我给出绝对路径时,文件才会更新。有没有办法在运行时找到文件位置。因为当我运行测试用例时,文件将在本地出现,路径将不同。
**有两种方法可以做到这一点 1)确保文件存在于类路径中。如果存在于类路径中,我们不需要在文件名
之前给出绝对路径2)提供另一个设置路径的类。通过这种方式,可以在运行测试用例时设置路径。 (TestNG的/ JUNIT)**
(3)有没有办法在此方面利用类路径。
**上面已经介绍**
希望这有帮助