无法删除属性 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
应该可以解决您的问题。
我正在尝试删除属性文件中的用户(密钥)和密码(密钥值),但在删除它们之后,我仍然可以 "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
应该可以解决您的问题。