Below example is used to read the plain text property file as well as the XML format property file.
packagecom.gaurav.loadpropertyfile;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.util.Properties;
importjava.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 voidgetPropFileFromClasspath(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 voidgetAllPropertyKeysFromFiles(
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