Loading and Reading the Property file from classpath in java
Properties files are the important resources
to store information in Java. These files are used to store static information as
key and value pair.
There are ways to Load the property
file in java.
1. With the help of getClassLoader().getResourceAsStream(fileName)
2. With the help of getClass().getResourceAsStream(fileName)
In
the below example, we will use above both the methods to load the properties
files from the classpath:-
NAME=KUMAR GAURAV
EMP_ID=1234
ORG_NAME=INDIA COMPANY
A program to load and read the
property file from classpath.
package com.gaurav.loadpropertyfile;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.Set;
public class PropertyFileLoader {
/**
* This method is responsible to load a
property file.
*
* @return Properties
*/
public
static Properties loadPropertyFile(String fileName) {
Properties prop = null;
try {
prop = new Properties();
InputStream
in = PropertyFileLoader.class.getClassLoader()
.getResourceAsStream(fileName);
prop.load(in);
in.close();
} catch (IOException ioe) {
System.out.println(ioe.getMessage());
}
return prop;
}
/**
* This method is responsible to load a
property file without using getClassLoader() method.
*
* @return Properties
*/
public
Properties loadPropertyFileUsingSecondWay(String fileName) {
Properties prop = null;
try {
prop = new Properties();
InputStream
in = this.getClass().getResourceAsStream(fileName);
prop.load(in);
in.close();
} catch (IOException ioe) {
System.out.println(ioe.getMessage());
}
return prop;
}
/**
* This method is responsible to load the
property by reading from the file.
*
* @return String
*/
public
static String getPropertyValue(Properties prop, String propertyKey) {
String propertyValue =
null;
boolean flag =
prop.containsKey(propertyKey);
if (flag) {
propertyValue
= prop.getProperty(propertyKey);
}
return propertyValue;
}
@SuppressWarnings("rawtypes")
public static void main(String
args[]){
Properties prop = new Properties();
prop =
PropertyFileLoader.loadPropertyFile("Test.properties");
Set propertySet =
prop.entrySet();
System.out.println("AVAILABLE
PROPERTIES ARE \n");
for( Object obj
:propertySet){
System.out.println(obj);
}
/** Checking the available properties in the property file*/
String
propValue=PropertyFileLoader.getPropertyValue(prop, "ORG_NAME");
System.out.println("\nORG_NAME
key property Value is-"+propValue);
/** Again Loading the property file using second method*/
PropertyFileLoader pfl =
new PropertyFileLoader();
Properties prop1 = new
Properties();
prop1 =
pfl.loadPropertyFileUsingSecondWay("/com/gaurav/loadpropertyfile/employee.properties");
Set propertySet1 =
prop1.entrySet();
System.out.println("\nAVAILABLE
PROPERTIES USING SECOND METHOD ARE \n");
for( Object obj :propertySet1){
System.out.println(obj);
}
/** Checking the available properties in the property file*/
String propValue1
=PropertyFileLoader.getPropertyValue(prop1, "COMP_NAME");
System.out.println("\nCOMP_NAME
key property Value is-"+propValue1);
}
}
Result:-
AVAILABLE PROPERTIES ARE
EMP_ID=1234
ORG_NAME=INDIA COMPANY
NAME=KUMAR GAURAV
ORG_NAME key property Value
is-INDIA COMPANY
AVAILABLE PROPERTIES USING SECOND
METHOD ARE
ID=9876
COMP_NAME=COMPANY LTD
EMP_NAME=EMPLOYEE 1
COMP_NAME key property Value
is-COMPANY LTD