Load Files From ClassPath Using getResourceStream()

If you are looking to load a file from the classpath of your project, the use the method getResourceAsStream(). The main difference from the File class is that, File class uses the absolute path for finding the files. java.io are dependent on the current working directory of your application. There are not dependent on the class loaders.

If you are using the getResourceAsStream() method, it will search the class loaders and find the file. It is always call this method with the getClassLoader() to get the current class loader of the application.

Lets look at the example on how to load the file from classpath. Note that, you have to add “resources.properties” file in the classpath of the application.
GetResourceAsStreamExample.java

package javabeat.net.io;

import java.io.BufferedInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * Java getResourceAsStream() Example
 *
 * @author Krishna
 *
 */
public class GetResourceAsStreamExample {
	public static void main(String[] args) throws IOException,
			FileNotFoundException {
		Class classVar = GetResourceAsStreamExample.class;

		//Loading the file from the current classloaders classpath
		BufferedInputStream fileInputStream = (BufferedInputStream) classVar
				.getClassLoader().getResourceAsStream("resources.properties");
		int i = fileInputStream.read();
		while (i != -1) {
			System.out.println((char) i);
			i = fileInputStream.read();
		}

	}
}

Comments

comments

About Krishna Srinivasan

He is Founder and Chief Editor of JavaBeat. He has more than 8+ years of experience on developing Web applications. He writes about Spring, DOJO, JSF, Hibernate and many other emerging technologies in this blog.

Speak Your Mind

*