For .properties file manipulation, I have a use case that requires something like "addKeyAfterKey(String keyToAdd, String afterKey)". This allows a property to be written after some other property when saving.
I have extended PropertiesConfigurationLayout to accomplish this new behavior. Unfortunately, the save method iterates over a private member (layoutData), so I have no control over the final file order.
An easy fix for my use case would be to change line 564 of PropertiesConfigurationLayout.java to use the public getKeys() method instead of layoutData.keySet():
Then I could override getKeys() to return the required order for saving.