A good programming practice is to avoid hardcoding values in your Java File. These values should be read from some resource files or proerty files. The major benefit of doing that is that in case you decide to alter those values, there is no need to recompile your classes. Another benefit is the isolation of the resources from the logic.
Is it difficult to read the resource from a file on to the Java class? No, it’s pretty simple. The following sample code that I wrote shows how easily you can read the content of your file as a stream. How you use the value thus read in your Java file is up to you. I have only demonstrated how the resource is actually read.

This program does the following:
- Read resource file as a stream from Java class
- Print the content of the resource file onto the Java console.
package com.kushal.tools; /** * @author Kushal Paudyal * Created on 2012-07-03 * Last Modified on 2012-07-03 * * This class demonstrate how we can read the resource files as file input stream. * - Reads a resource file * - Prints file contests on to the console. */ import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.io.InputStreamReader; public class ReadResourceFile { public static void main(String args []) throws Exception { readResourceFileAndPrintContents(); } private static void readResourceFileAndPrintContents() throws Exception { /** Get the input stream for the resource file**/ InputStream stream = loadResourceAsStream ("C:/temp/myresources.properties"); /**Create a BufferedReader object for the input stream**/ BufferedReader in = new BufferedReader(new InputStreamReader(stream)); /**Read the lines and print them onto the console**/ String line; while ((line = in.readLine()) != null) { System.out.println((line)); } } /** * This method * - Takes a resource file name as parameter * - Returns the InputStream object of FileInputStream type */ public static InputStream loadResourceAsStream(final String resourceName) { InputStream input = null; try { input = new FileInputStream(resourceName); } catch (FileNotFoundException e) { System.out.println("Resource File Not Found"); e.printStackTrace(); } return input; } }
Content of the file c:/temp/myresources.properties
server=www.thisismyfantasticvirtualserver.com port=1005 userid=mickeyrourke password=dontcopymypasswordplease
Here is the output of this program, which is same as the content of the file. The java class simply read the resource file as stream and spit out the content onto the console.
server=www.thisismyfantasticvirtualserver.com port=1005 userid=mickeyrourke password=dontcopymypasswordplease
Originally posted 2012-07-06 12:48:10.