Quantcast
Channel: Kushal's Java Blog | Software Engineering Blog
Viewing all articles
Browse latest Browse all 25

Reading the Resource or Property files in Java as a file stream and outputting the content to console

$
0
0

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.


Reading the Resource or Property files in Java as a file stream and outputting the content to console

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.

Share


Viewing all articles
Browse latest Browse all 25

Trending Articles