This is a common task for a developer to maintain project configuration data or settings in an external file, for example keeping JDBC database configurations in the database.properties file. In this tutorial, we will show you how to read and write to/from a database.properties file.
1. Write to Properties File Example
Let's write a Java program to set the property key and value, and save it to a specific location. In this example, we will use "database.properties" path. In the next example, we will read or load the same file.
package com.javaguides.collections.properties; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Properties; public class WritePropertyFile { public static void main(String[] args) { try (OutputStream output = new FileOutputStream("database.properties")) { Properties prop = new Properties(); // set the properties value prop.setProperty("jdbc.driverClassName", "com.mysql.jdbc.Driver"); prop.setProperty("jdbc.url", "jdbc:mysql://localhost:3306/demo?useSSL=false"); prop.setProperty("jdbc.username", "root"); prop.setProperty("jdbc.password", "root"); // save properties to project root folder prop.store(output, null); // Java 8 , print key and values prop.forEach((key, value) -> System.out.println("Key : " + key + ", Value : " + value)); } catch (IOException io) { io.printStackTrace(); } } }
Output:
Key : jdbc.driverClassName, Value : com.mysql.jdbc.Driver
Key : jdbc.password, Value : root
Key : jdbc.username, Value : root
Key : jdbc.url, Value : jdbc:mysql://localhost:3306/demo?useSSL=false
The "database.properties" file has created under the root directory of your project with the following content -
jdbc.url=jdbc\:mysql\://localhost\:3306/demo?useSSL\=false
jdbc.username=root
jdbc.password=root
jdbc.driverClassName=com.mysql.jdbc.Driver
2. Read or Load a Properties File Example
Let's read or load properties from "database.properties" file that created in the above example and print the key-value pair.
package com.javaguides.collections.properties; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class ReadPropertyFile { public static void main(String[] args) { try (InputStream input = new FileInputStream("database.properties")) { Properties prop = new Properties(); // load a properties file from InputStream prop.load(input); // Java 8 , print key and values prop.forEach((key, value) -> System.out.println("Key : " + key + ", Value : " + value)); } catch (IOException ex) { ex.printStackTrace(); } } }
Output:
Key : jdbc.driverClassName, Value : com.mysql.jdbc.Driver
Key : jdbc.password, Value : root
Key : jdbc.username, Value : root
Key : jdbc.url, Value : jdbc:mysql://localhost:3306/demo?useSSL=false
3. Read or Load a Properties File from Classpath
Let's keep "database.properties" file in the classpath. Now let's read or load a properties file database.properties from project classpath, and print the key-value pair.
package com.javaguides.collections.properties; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; public class ReadPropertyFileFromClassPath { public static void main(String[] args) { String fileName = "database.properties"; ReadPropertyFileFromClassPath obj = new ReadPropertyFileFromClassPath(); Properties prop = obj.loadProperties(fileName); // Java 8 , print key and values prop.forEach((key, value) -> System.out.println("Key : " + key + ", Value : " + value)); } public Properties loadProperties(String fileName) { Properties prop = new Properties(); try (InputStream inputStream = ReadPropertyFileFromClassPath.class.getClassLoader() .getResourceAsStream(fileName)) { // check for null if (inputStream == null) { System.out.println("Unable to find " + fileName + " file"); return prop; } // load a properties file from class path prop.load(inputStream); } catch (IOException e) { Logger.getLogger(getClass().getName()).log(Level.SEVERE, e.getMessage(), e); } return prop; } }
Output:
Key : jdbc.driverClassName, Value : com.mysql.jdbc.Driver
Key : jdbc.password, Value : root
Key : jdbc.username, Value : root
Key : jdbc.url, Value : jdbc:mysql://localhost:3306/demo?useSSL=false
Learn complete Java programming at Java Tutorial | Learn Java Programming with Examples
Comments
Post a Comment
Leave Comment