javaproperties

Updating property value in properties file without deleting other values


Content of First.properties:

name=elango
country=india
phone=12345

I want change country from india to america. This is my code:

import java.io.*;
public class UpdateProperty 
{
    public static void main(String args[]) throws Exception 
    {   
        FileOutputStream out = new FileOutputStream("First.properties");
        FileInputStream in = new FileInputStream("First.properties");
        Properties props = new Properties();
        props.load(in);
        in.close();
        props.setProperty("country", "america");
        props.store(out, null);
        out.close();
    } 
}

Output content of First.properties:

country=america

The other properties are deleted. I want update a particular property value, without deleting the other properties.


Solution

  • Open the output stream and store properties after you have closed the input stream.

    try (FileInputStream in = new FileInputStream("First.properties")) {
        Properties props = new Properties();
        props.load(in);
    }
            
    try (FileOutputStream out = new FileOutputStream("First.properties")){
        props.setProperty("country", "america");
        props.store(out, null);
    }