问题
I have to update the value of a tag in property file. I had to persist the layout of the file after updation, so I am using PropertiesConfiguration API form APACHE.
I have done this and functionality is working as expected. Now there was few keys for those vales have backslash() and forward slash(/).When I am updating it gets changed. Backslash get removed and updation and forward slash(/) becomes / this. Below is the sample code which I am using
properties = new PropertiesConfiguration(("Dbconnect - Copy.properties"));
properties.setProperty("ConfigFilePath", "C:\\Amitabh\\Projects\\");
properties.save();
System.out.println("config.properties updated Successfully!!");
Just to know that how I will prevent. Thanks & Regards Amitabh Pandey
回答1:
If you check here https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html
You will see that slashes in properties files have special meaning. They are used to escape characters in properties - for example to spread properties across multiple lines. So before writing them to the properties file you should replace them with double slash (effectively becoming \\\\)
If you don't use Java standard properties readers and read/write the file by yourself you won't have such problems. For example you can open it as a text file and just add the property to the end basically overriding the other times it has been seen - as a work around. But better try with double-double (4) slashes
来源:https://stackoverflow.com/questions/50171157/update-property-file-in-java