Code ví dụ Spring đọc file từ resource folder (resources)

Code ví dụ Spring đọc file từ resource folder (resources)

Code ví đọc file từ resources folder dưới đây áp dụng cho cả project Spring MVC và project Spring Boot

Tạo Maven Project

Tạo project, và đọc file trong folder src/main/resources là file demo.txt

Code ví dụ Spring đọc file từ resource folder

Thư viện sử dụng

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>5.0.2.RELEASE</version>
</dependency>

File demo.txt

Code ví dụ Spring đọc file từ resource folder (resources)

Cách 1: đọc file thông qua ClassLoader

Với cách này ta không cần sử dụng đến thư viện của Spring Framework.

public static void readFileUsingClassLoader() throws IOException {
  System.out.println("Read file from resource folder via ClassLoader");
  String fileName = "files/demo.txt";
  // ClassLoader classLoader = new ReadFile().getClass().getClassLoader();
  ClassLoader classLoader = ClassLoader.getSystemClassLoader();
  File file = new File(classLoader.getResource(fileName).getFile());

  // Read File Content
  String content = new String(Files.readAllBytes(file.toPath()));
  System.out.println(content);
}

Tạo ClassLoader thông qua class hiện tại new ReadFile().getClass().getClassLoader(); hoặc thông qua ClassLoader.getSystemClassLoader();

Cách 2: đọc file sử dụng Spring ResourceUtils

public static void readFileUsingResourceUtils() throws IOException {
  System.out.println("Read file from resource folder using Spring ResourceUtils");
  File file = ResourceUtils.getFile("classpath:files/demo.txt");
  // Read File Content
  String content = new String(Files.readAllBytes(file.toPath()));
  System.out.println(content);
}

Demo

Code ví dụ Spring đọc file từ resource folder (resources)

Code ví dụ Spring đọc file từ resource folder (resources) stackjava.com

Okay, Done!

Download code ví dụ trên tại đây.

 

References:

https://docs.spring.io/spring/docs/…/ResourceUtils.html

https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html

stackjava.com