Java 使用属性更新属性
我想向现有文件添加新属性。每当我添加新属性时,整个文件都会被覆盖。是否有更新文件而不覆盖属性的方法Java 使用属性更新属性,java,file,properties,fileoutputstream,Java,File,Properties,Fileoutputstream,我想向现有文件添加新属性。每当我添加新属性时,整个文件都会被覆盖。是否有更新文件而不覆盖属性的方法 FileOutputStream fo = new FileOutputStream(PROPERTIES_FILE); Properties pr = new Properties(); pr.setProperty("Key1", "KeyValue"); try { pr.store(fo, " Comments"); } catch (IO
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) 无论如何,有没有一种方法可以利用类路径来实现这一点
提前谢谢 **我写下来是因为我没有找到上述问题的明确答案** (1) 现在,如果我想添加一个名为Key2的新属性,并设置一个值KeyValue2。可能吗 **是的,这是可能的。理解这里的关键是,properties对象将存储在调用“store”api时。这里不会发生附加。该文件将被properties对象的内容覆盖。API不支持附加它。 解决此问题的方法是: 1) 从同一文件加载属性 2) 更新新属性或现有属性 3) 然后使用输出流进行存储 这样,文件的内容就不会丢失** (2) 同样,当我在tomcat中部署时,只有当我给出绝对路径时,文件才会得到更新。是否有一种在运行时查找文件位置的方法。因为当我运行测试用例时,文件将出现在本地,路径将不同 **有两种方法可以做到这一点 1) 确保该文件存在于类路径中。如果存在于类路径中,我们不需要在文件名之前给出绝对路径 2) 提供另一个设置路径的类。通过这种方式,可以在运行测试用例时设置路径。(TESTNG/JUNIT)** (3) 无论如何,有没有一种方法可以利用类路径来实现这一点 **上面已经提到了** 希望这有帮助