리소스(Resource)
Maven
이나 Gradle
을 사용하여 스프링 프로젝트를 만들게 되면 src/main/resources
디렉토리에 리소스 파일을 저장하게 되어있습니다. *.java
파일처럼 컴파일 대상이 되는 소스파일이 아닌 파일들을 리소스 디렉토리에 저장하여 관리합니다.
|
|
프로젝트를 빌드하면 리소스 파일들은 CLASS_PATH
에 위치하게 됩니다.
리소스 파일 가져오기
스프링 프레임워크에는 이러한 CLASS_PATH에 저장된 리소스 파일을 쉽게 가져올 수 있도록 해주는 ClassPathResource
클래스를 제공합니다.
예를들어, src/main/resources/data/data.txt
에 위치한 파일을 가져오려면 아래와 같이 코드를 작성합니다.
|
|
ClassPathResource
는 스프링 프레임워크가 제공하는 클래스로, 리소스에 대한 파일 이름, File 객체, URL, URI 등 리소스와 관련된 정보를 제공합니다.
가져온 리소스 파일의 내용 읽기
가져온 리소스 파일의 내용은 Java7에 새롭게 추가된 nio
패키지의 Files
, Paths
를 사용하면 쉽게 읽을 수 있습니다.
여기서는 간단하게 파일의 내용일 라인단위로 읽어오도록 하겠습니다. Files.readAlllines()
메서드를 사용하면 Path에 존재하는 파일의 내용일 읽어서 List<String>
타입으로 가져올 수 있습니다.
위 코드 처럼 Paths.get()
메서드를 사용해서 리소스의 URI로부터 Path 객체를 생성한 후, Files.readAllLines(path)
메서드를 호출하면 Path에 해당하는 파일 내용을 쉽게 읽어올 수 있습니다.