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(); } } }