I want to read in a datafile that has several constants for my program (e.g. MAXARRAYSIZE).
I then want these constants to be accessible anywhere in my program by typing som
Use a static bloc in ConstantsClassName
class.
public class ConstantsClassName{
public static final String MAXARRAYSIZE;
static{
// read your file and store the data in;
MAXARRAYSIZE = valueRetrievedFromFile;
}
}
MAXARRAYSIZE
should be MAX_ARRAY_SIZE
if you follow Java conventions for constants declaration.
If their are lots of constants in your file, you can use below snippet of code:
public static final HashMap<String, String> keyValues = new HashMap<>();
static{
BufferedReader br = null;
String line = null;
try{
br = new BufferedReader(new FileReader("datafile.txt"));
while((line=br.readLine())!=null){
//if Constant name and Value is separated by space
keyValues.put(line.split(" ")[0], line.split(" ")[1]);
}
}catch(IOException e){
e.printStackTrace();
}
}
Now use the keyValues HashMap to get the value you have for the constant like
keyValues.get("MAXARRAYSIZE");
In this way you do not have to define multiple constant variables for multiple constants, only keyValues HashMap is sufficient to store all the constants and its value. Hope it helps.