无法删除属性 java

Can't remove properties java

我正在尝试删除属性文件中的用户(密钥)和密码(密钥值),但在删除它们之后,我仍然可以 "log in" 使用用户名。我删除属性的代码是:

FileReader fileReader = new FileReader("File.properties");
        properties.load(fileReader);
        properties.remove(username);
        fileReader.close();

        FileWriter fileWriter = new FileWriter("File.properties", true);
        properties.store(fileWriter, "Updated");
        System.out.println(username + properties.getProperty(username));
        fileWriter.close();

这是执行代码后 属性 文件的样子。

4 月 29 日,星期三 21:31:27 CEST 2015

userr=通过

已更新 2015 年中欧夏令时 4 月 29 日星期三 21:31:44

(已删除)

所以键和键值在新行中消失了,但它仍然在那里,我可以使用它。那么如何从 属性 文件中正确删除它呢? 对不起,如果它弄乱了。谢谢。`

作为文档:

FileWriter(File file, boolean append) Constructs a FileWriter object given a File object.

因此,如果您将 true 放入第二个参数中,您将追加到文件中,不要覆盖它。

看看官方FileWriter Javadoc。构造函数中的第二个参数是标志,用于决定是附加到文件 (true) 还是覆盖文件 (false)。因此,正如您自己注意到的那样,通过将其设置为 true,您仅将属性附加到现有属性,而读取它们的任何内容都可能是从文件中获取第一个原始值。将其设置为 false 应该可以解决您的问题。