I am using following code for writing data to properties file
public void WritePropertiesFile(String key, String data)
{
Properties configProperty = new Properties();
configProperty.setProperty(key, data);
File file = new File("D:\\Helper.properties");
FileOutputStream fileOut = new FileOutputStream(file,true);
configProperty.store(fileOut, "sample properties");
fileOut.close();
}
I am calling the above method 3 times as follows:
help.WritePropertiesFile("appwrite1","write1");
help.WritePropertiesFile("appwrite2","write2");
help.WritePropertiesFile("appwrite3","write3");
However, the data in Helper.properties file is displayed as follows:
#sample properties
#Mon Jul 01 15:01:45 IST 2013
appwrite1=write1
#sample properties
#Mon Jul 01 15:01:45 IST 2013
appwrite2=write2
appwrite1=write1
#sample properties
#Mon Jul 01 15:01:45 IST 2013
appwrite3=write3
appwrite2=write2
appwrite1=write1
I want data to append to existing data and doesn't want duplicate data, that is as follows:
appwrite3=write3
appwrite2=write2
appwrite1=write1
Please suggest how to do it?
Just do not open the file in append mode.
You read existing properties from the file and the write them again. If you append to the file, all the contents of the Properties
object will be appended since this is what you asked for.
Just replace:
FileOutputStream fileOut = new FileOutputStream(file,true);
with:
FileOutputStream fileOut = new FileOutputStream(file);
Side note: you should .close()
your output stream in a finally
block.