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