Project Structure
Read file using ClassLoader.getResource().toURI()
In this example, we will use the
ClassLoader reference of instance of class.package com.howtodoinjava.demo;import java.io.File;import java.io.IOException;import java.nio.file.Files;public class ReadResourceFileDemo{ public static void main(String[] args) throws IOException { String fileName = "config/sample.txt"; ClassLoader classLoader = new ReadResourceFileDemo().getClass().getClassLoader(); File file = new File(classLoader.getResource(fileName).getFile()); //File is found System.out.println("File Found : " + file.exists()); //Read File Content String content = new String(Files.readAllBytes(file.toPath())); System.out.println(content); }} |
If you do not want to create any un-necessary instance of any class then you may utilize system classloader instance as below:
String fileName = "config/sample.txt";// ClassLoader classloader = Thread.currentThread().getContextClassLoader();ClassLoader classLoader = ClassLoader.getSystemClassLoader();File file = new File(classLoader.getResource(fileName).getFile());//File is foundSystem.out.println("File Found : " + file.exists());//Read File ContentString content = new String(Files.readAllBytes(file.toPath()));System.out.println(content); |
Program output is shown below.
Output: File Found : true Test Content
Read file using Spring’s ResourceUtils.getFile()
If your application happens to be spring based application then you may directly take advantage of
ResourceUtils class.File file = ResourceUtils.getFile("classpath:config/sample.txt")//File is foundSystem.out.println("File Found : " + file.exists());//Read File ContentString content = new String(Files.readAllBytes(file.toPath()));System.out.println(content); |
Program output is shown below.
Output: File Found : true Test Content
Happy Learning !!
References:

Không có nhận xét nào:
Đăng nhận xét