티스토리 뷰
개요
Java 기반의 프로젝트는 크게 2개로 파일의 성격을 구분할 수 있다. 첫째는 .java로 끝나는(빌드시 .class로 컴파일될) Source
파일이고 둘째는 소스가 아닌(컴파일의 대상이 아닌) Resource
파일이다. 흔히 작성하게 되는 각종 .xml 파일부터 .html, .js, .css 파일까지 모두 이 리소스 파일에 해당한다. 이번 글에서는 이러한 리소스 파일을 획득하는 방법을 설명하고자 한다.
리소스 파일 획득하기
// /src/main/resources/something.txt 파일을 읽어 온다.
String something = IOUtils.toString(getClass().getResourceAsStream("/something.txt"), "UTF-8");
- Maven 또는 Gradle 기반 프로젝트는
/src/main/resources
디렉토리에 리소스 파일을 저장하도록 되어 있다. 이 디렉토리에 위치한 파일들은 .jar 파일로 빌드시 최상위인 루트 디렉토리에 위치하게 되는데 이 말은 런타임시 해당 파일들이 ROOT CLASSPATH에 위치한다는 것을 의미한다. - CLASSPATH의 ROOT에 위치하므로 위와 같이 절대 경로인
/
를 앞에 명시함으로서 리소스 파일을 로드할 수 있다. 상대 경로를 명시할 경우 명령을 호출한 클래스의 위치에 따라 경로가 달라진다. - getClass().getResourceAsStream() 메써드는 InputStream 오브젝트를 반환환다. 대상 리소스 파일이 텍스트일 경우 Apache Commons IO가 제공하는
IOUtils.toString()
를 이용하여 대상 리소스 파일을 간편하게 문자열로 획득할 수 있다. - 만약 대상 리소스 파일이 존재하지 않을 경우
java.lang.NullPointerException
을 발생시킨다.
참고 글
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- bootstrap
- jpa
- JavaScript
- DynamoDB
- 로드바이크
- jstl
- 구동계
- Kendo UI
- Docker
- graylog
- 자전거
- java
- Eclipse
- 로드 바이크
- Kendo UI Web Grid
- 알뜰폰
- kotlin
- chrome
- 평속
- jsp
- node.js
- 태그를 입력해 주세요.
- Spring MVC 3
- MySQL
- CentOS
- spring
- Spring Boot
- Tomcat
- maven
- JHipster
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함