How to write values in a properties file through java code

前端 未结 4 1838
庸人自扰
庸人自扰 2020-11-30 09:30

I have an issue.

I have a properties file. I want to store some values in that file and will implement in the code whenever it is required. Is there any way to do t

相关标签:
4条回答
  • 2020-11-30 10:09

    You can do it in following way:

    1. Set the properties first in the Properties object by using object.setProperty(String obj1, String obj2).

    2. Then write it to your File by passing a FileOutputStream to properties_object.store(FileOutputStream, String).

    Here is the example code :

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException;
    import java.util.Arrays;
    import java.util.Properties;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.File;
    
    class Main
    {
        static File file;
        static void saveProperties(Properties p) throws IOException
        {
            FileOutputStream fr = new FileOutputStream(file);
            p.store(fr, "Properties");
            fr.close();
            System.out.println("After saving properties: " + p);
        }
    
        static void loadProperties(Properties p)throws IOException
        {
            FileInputStream fi=new FileInputStream(file);
            p.load(fi);
            fi.close();
            System.out.println("After Loading properties: " + p);
        }
    
        public static void main(String... args)throws IOException
        {
            file = new File("property.dat");
            Properties table = new Properties();
            table.setProperty("Shivam","Bane");
            table.setProperty("CS","Maverick");
            System.out.println("Properties has been set in HashTable: " + table);
            // saving the properties in file
            saveProperties(table);
            // changing the property
            table.setProperty("Shivam", "Swagger");
            System.out.println("After the change in HashTable: " + table);
            // saving the properties in file
            saveProperties(table);
            // loading the saved properties
            loadProperties(table);
        }
    }
    
    0 讨论(0)
  • 2020-11-30 10:10

    Load the properties file using java.util.Properties.

    Code snippet -

    Properties prop = new Properties();
    InputStream in = getClass().getResourceAsStream("xyz.properties");
    prop.load(in);
    

    It provides Properties#setProperty(java.lang.String, java.lang.String) which helps to add new property.

    Code snippet -

    prop.setProperty("newkey", "newvalue");
    

    This new set you can save using Properties#store(java.io.OutputStream, java.lang.String)

    Code Snippet -

    prop.store(new FileOutputStream("xyz.properties"), null);
    
    0 讨论(0)
  • 2020-11-30 10:18

    This work for me.

        Properties prop = new Properties();
    
                    try {
                            InputStream in = new FileInputStream("src/loop.properties");
                            prop.load(in);
                        } catch (IOException ex) {
                           System.out.println(ex);
                        }
               //Setting the value to  our properties file.
               prop.setProperty("LOOP", "1");
               //Getting the value from  our properties file.
               String value = prop.getProperty("LOOP").trim();
    
                    try {
                            prop.store(new FileOutputStream("src/loop.properties"), null);
                        } catch (IOException ex) {
                           System.out.println(ex);
                        }
    
    0 讨论(0)
  • 2020-11-30 10:23

    Your problem is not clear since Writing/reading from properties files is something already available in java.

    To write to properties file you can use the Properties class as you mentioned :

    Properties properties = new Properties();
    try(OutputStream outputStream = new FileOutputStream(PROPERTIES_FILE_PATH)){  
        properties.setProperty("prop1", "Value1");
        properties.setProperty("prop2", "Value2");
        properties.store(outputStream, null);
    } catch (IOException e) {
        e.printStackTrace();
    } 
    

    Source and more examples here

    0 讨论(0)
提交回复
热议问题