Below example is used
to read the plain text property file as well as the XML format property file.
package
com.gaurav.loadpropertyfile;
import
java.io.FileInputStream;
import
java.io.FileNotFoundException;
import
java.io.FileReader;
import
java.io.IOException;
import
java.io.InputStream;
import
java.util.Properties;
import
java.util.Set;
public class PropertyFileReader {
public static void main(String[] args) throws IOException {
// This property is used for writing the
File.
String
plainPropertyFileName = "src/jdbc.properties";
String
xmlPropertyFileName = "src/jdbc.xml";
/**
* For reading the property from classpath no
need to pass src
* directory, as reading from classpath means
automatically it will
* search in the src directory and if file is
not found then it will
* throw Null Pointer Exception
*/
// This property is used for reading the
File from classpath.
String
propFileNameFromClasspath = "jdbc.properties";
getAllPropertyKeysFromFiles(plainPropertyFileName,
xmlPropertyFileName);
getPropertiesFromFiles(plainPropertyFileName,
xmlPropertyFileName);
getPropFileFromClasspath(propFileNameFromClasspath);
}
/**
* read property file from java classpath
*
* @param plainPropertyFileName
* @throws IOException
*/
private static void
getPropFileFromClasspath(String plainPropertyFileName)
throws IOException {
Properties
prop = new Properties();
prop.load(PropertyFileReader.class.getClassLoader()
.getResourceAsStream(plainPropertyFileName));
System.out.println("Reading
property file " + plainPropertyFileName
+
" from the classpath");
System.out.println("jdbc.driverClassName
= "
+
prop.getProperty("jdbc.driverClassName"));
System.out.println("jdbc.url
= " + prop.getProperty("jdbc.url"));
System.out.println("jdbc.username
= "
+
prop.getProperty("jdbc.username"));
System.out.println("jdbc.password
= "
+
prop.getProperty("jdbc.password"));
System.out
.println("Execution
completed for reading property file "
+
plainPropertyFileName + " from the classpath");
System.out
.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
}
/**
* read all the keys from the given property
files
*
* @param plainPropertyFileName
* @param xmlPropertyFileName
* @throws IOException
*/
private static void
getAllPropertyKeysFromFiles(
String
plainPropertyFileName, String xmlPropertyFileName)
throws IOException {
System.out
.println("Execution
started for getting all property Keys from files");
Properties
prop = new Properties();
FileReader
reader = new FileReader(plainPropertyFileName);
prop.load(reader);
Set<Object>
keys = prop.keySet();
System.out.println("Reading
keys from " + plainPropertyFileName
+
" property file started");
for
(Object obj : keys) {
System.out.println("Key="
+ obj.toString() + "||value="
+
prop.getProperty(obj.toString()));
}
//
clearing existing properties and loading xml file
System.out.println("Reading
keys from " + plainPropertyFileName
+
" property file completed\n");
prop.clear();
InputStream
is = new FileInputStream(xmlPropertyFileName);
prop.loadFromXML(is);
keys
= prop.keySet();
System.out.println("Reading
keys from " + xmlPropertyFileName
+
" property file started");
for
(Object obj : keys) {
System.out.println("Key="
+ obj.toString() + "||value="
+
prop.getProperty(obj.toString()));
}
System.out.println("Reading
keys from " + xmlPropertyFileName
+
" property file completed");
//
closing and closing all the resources
is.close();
reader.close();
System.out
.println("Execution
completed for getting all property Keys from files\n");
System.out
.println("******************************************************************\n");
}
/**
* This method reads plain property as well as
XML property files from file
* system
*
* @param plainPropertyFileName
* @param xmlPropertyFileName
* @throws IOException
* @throws FileNotFoundException
*/
private
static void getPropertiesFromFiles(String plainPropertyFileName,
String
xmlPropertyFileName) throws FileNotFoundException,
IOException
{
System.out.println("Start
of getting properties from files");
Properties
prop = new Properties();
FileReader
reader = new FileReader(plainPropertyFileName);
prop.load(reader);
System.out.println("Reading
" + plainPropertyFileName
+
" property file started");
System.out.println("jdbc.driverClassName
= "
+
prop.getProperty("jdbc.driverClassName"));
System.out.println("jdbc.url
= " + prop.getProperty("jdbc.url"));
System.out.println("jdbc.username
= "
+
prop.getProperty("jdbc.username"));
System.out.println("jdbc.password
= "
+
prop.getProperty("jdbc.password"));
System.out.println("Reading
" + plainPropertyFileName
+
" property file completed\n");
//
loading xml file now, first clear existing properties
prop.clear();
InputStream
is = new FileInputStream(xmlPropertyFileName);
prop.loadFromXML(is);
System.out.println("Reading
" + xmlPropertyFileName
+
" property file started");
System.out.println("jdbc.driverClassName
= "
+
prop.getProperty("jdbc.driverClassName"));
System.out.println("jdbc.url
= " + prop.getProperty("jdbc.url"));
System.out.println("jdbc.username
= "
+
prop.getProperty("jdbc.username"));
System.out.println("jdbc.password
= "
+
prop.getProperty("jdbc.password"));
System.out.println("Reading
" + xmlPropertyFileName
+
" property file completed");
//
closing and Releasing all the resources
is.close();
reader.close();
System.out.println("End
of getting properties from files");
System.out
.println("####################################################################\n");
}
}
Result:-
Execution
started for getting all property Keys from files
Reading keys from
src/jdbc.properties property file started
Key=jdbc.username||value=root
Key=jdbc.password||value=root
Key=jdbc.driverClassName||value=com.mysql.jdbc.Driver
Reading keys from
src/jdbc.properties property file completed
Reading keys from src/jdbc.xml
property file started
Key=jdbc.username||value=system
Key=jdbc.password||value=system123
Key=jdbc.driverClassName||value=oracle.jdbc.driver.OracleDriver
Reading keys from src/jdbc.xml
property file completed
Execution
completed for getting all property Keys from files
******************************************************************
Start
of getting properties from files
Reading src/jdbc.properties
property file started
jdbc.driverClassName =
com.mysql.jdbc.Driver
jdbc.url = null
jdbc.username = root
jdbc.password = root
Reading src/jdbc.properties
property file completed
Reading src/jdbc.xml property
file started
jdbc.driverClassName =
oracle.jdbc.driver.OracleDriver
jdbc.url = null
jdbc.username = system
jdbc.password = system123
Reading src/jdbc.xml property
file completed
End
of getting properties from files
####################################################################
Reading
property file jdbc.properties from the classpath
jdbc.driverClassName =
com.mysql.jdbc.Driver
jdbc.url = null
jdbc.username = root
jdbc.password = root
Execution
completed for reading property file jdbc.properties from the classpath
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
No comments:
Post a Comment