Read a file from resource file in Java
Hello coders in this tutorial, we will discuss a method for reading a file from a resource folder in Java.
We can read the file using the ClassLoader object before we proceed firstly we will discuss ClassLoader.
What is ClassLoader?
ClassLoader is a class in Java that is used to load class files, it is used to load classes at runtime.
If you ever make a Java project then you already know the location of the resource folder, it’s location src/java/resources
Code for reading from the resource folder:-
ClassLoader classLoader = this.getClass().getClassLoader(); File configFile=new File(classLoader.getResource(fileName).getFile());
Now the whole code for the reading a file from the resource folder:-
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
public class ReadPropertiesFileJavaMain {
public static void main(String args[]) throws IOException
{
ReadPropertiesFileJavaMain rp=new ReadPropertiesFileJavaMain();
System.out.println("Reading a file from theresources folder");
System.out.println("****************************");
rp.readFile("config.txt");
System.out.println("****************************");
}
public void readFile(String fileName) throws IOException
{
FileInputStream inputStream=null;
try {
ClassLoader classLoader = this.getClass().getClassLoader();
File configFile=new File(classLoader.getResource(fileName).getFile());
inputStream = new FileInputStream(configFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
finally {
inputStream.close();
}
}
}Output:-
Reading a file from the resources folder
****************************
host = localhost
username = tony
password = zxcvbnm123
****************************
Leave a Reply