我读取了一个属性文件,使用remove()
从中删除了一个密钥,一切都很好,直到这一步。但是,当我尝试使用store()
将属性保存到文件中时。它不会从属性文件中删除密钥。无法从java属性文件中删除密钥
这里是我的代码:
Properties props = new Properties();
try (InputStream in = Files.newInputStream(Paths.get("/myFolder/myFile.properties"))){
props.load(in);
}catch(NoSuchFileException e){
// file not found, continue with empty Properties
}
props.remove("someKeyToDelete");
try (OutputStream out = Files.newOutputStream(Paths.get("/myFolder/myFile.properties"), StandardOpenOption.CREATE)){
props.store(out, null);
}
这里面myFile.properties:
someKeyToDelete=123
而且,如果我运行此文件中的代码:
key1.abc=abc
someKeyToDelete=123
key1.abc2=abc2
而且我得到这个结果!!:
key1.abc=abc
key1.abc2=abc2
123
key1.abc2=abc2
您的解决方案解决了问题。但是,我想这可能是一个错误。 – Arashsoft
@Arashsoft即使你在读/写时没有指定任何'StandardOpenOption',它也能正常工作 – Saravana