The Properties
API doesn't provide any methods for adding/replacing/removing a property in the properties file. The model that the API supports is to load all of the properties from a file, make changes to the in-memory Properties
object, and then store all of the properties to a file (the same one or a different one).
But the Properties
API is not unusual in the respect. In reality, in-place updating of a text file is difficult to implement without rewriting the entire file. This difficulty is a direct consequence of the way that files / file systems are implemented by a modern operating system.
If you really need to do incremental updates, then you need to use some kind of database to hold the properties, not a ".properties" file.
Other Answers have suggested the following approach in various guises:
- Load properties from file into
Properties
object.
- Update
Properties
object.
- Save
Properties
object on top of existing file.
This works for some use-cases. However the load / save is liable to reorder the properties, remove embedded comments and white space. These things may matter1.
The other point is that this involves rewriting the entire properties file, which the OP is explicitly trying to avoid.
1 - If the API is used as the designers intended, property order, embedded comments, and so on wouldn't matter. But lets assume that the OP is doing this for "pragmatic reasons".
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…