将值写入java中的属性文件时出现问题

时间:2015-10-05 19:52:36

标签: java automated-tests

我正在运行几个测试,并在每个测试中写入属性文件。我成功地能够写入属性文件,但每次都会更新文件,并删除我存储在其中的先前值。 如何在不从文件中删除先前的键值的情况下写入属性文件。 下面是我用来写入属性文件

的代码
public static void writeToPropertyFile(String user, String aToken) {
    try {
        Properties props = new Properties();
        props.setProperty(user, aToken);
        FileWriter f = new FileWriter("csos.properties");

        props.store(f,"token");
    }
    catch (Exception e ) {
        e.printStackTrace();
    }
}

2 个答案:

答案 0 :(得分:1)

一种解决方案可能是读取文件并将其内容放入Properties对象。更新此对象。然后将对象重新写入文件。

像这样:

Properties props = new Properties();
props.load(new FileInputStream("file.properties"));
// work on props
FileOutputStream output = new FileOutputStream("file.properties");
props.store(output, "This is overwrite file");

请参阅:Java Properties File appending new values

答案 1 :(得分:1)

您可以先读取属性文件(如果存在)进行更改,然后保存。

try {
    File file = new File("csos.properties");
    Properties props = new Properties();

    if (file.exists()) {
       props.load(new FileReader(file));
    }

    props.setProperty(user, aToken);
    FileWriter f = new FileWriter(file);

    props.store(f,"token");
}
catch (Exception e ) {
    e.printStackTrace();
}