使用Java写入属性文件时出现问题

4

我正在运行一些测试,并在每个测试中写入属性文件。我已经成功地写入了属性文件,但是它每次更新文件并删除我存储在其中的先前值。 如何在不删除文件中以前的键值的情况下写入属性文件。 以下是我用于写入属性文件的代码:

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();
    }
}

我仔细研究了一下,发现链接的重复提供了很多关于应该做什么的上下文。如果我为已经存在的答案获得荣誉,那就不合适了,所以我将其作为重复关闭。 - Makoto
2个回答

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属性文件追加新值


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();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接