일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 느낌 사진
- 모리셔스리조트
- Sony A850
- openstack
- 톰캣 서비스 등록
- 모리셔스 카젤라
- 두바이
- cloud foundry
- postgresql 비밀번호 변경
- Trou aux Biches
- r
- 모리셔스여행
- 경주
- 모리셔스
- mauritius casela
- bind9
- 경주 여행
- 두바이여행
- postgresql 비밀번호 초기화
- 모리셔스 카셀라
- 모리셔스 여행
- mauritius
- 독일여행
- 트루오비쉬
- postgresql 설치
- 프랑크푸르트 여행
- 서울 야경
- Melbourne 여행
- duabi
- 서울야경
- Today
- Total
I.K.Picture & IT Info.
Maven 프로젝트 기반 resources 경로 읽기 본문
자바 관련 프로젝트를 할 때 기본적으로 Maven 프로젝트를 많이 사용합니다.
저 물론 또한 그렇구요..
엄청 간단한 방법이지만 잘 모르는 분들이 있고 이 부분 때문에 골머리를 가지고 계신 분들이 꽤 있는거 같아서
이렇게 정리해봐요~
일단 기본적으로 maven 프로젝트는 아래와 같이 구성되어 있습니다.
ProjectName
┗src
┗main
┗java
┗resource
┗test
┗target
┗ ...
뭐 이렇게 되어 있습니다.
간단한게 그린거지만 뭐 알아보시겠죠??
자 여기서 보면 java쪽에는 클래스들이 들어갈꺼고..
resource 부분에 대부분 어플리케이션에서 읽어들이는 파일이나 정보 등등 이미지 파일 이런것들이 들어가게되는데...
이걸 읽기위해서는 어떻게해야되는지~!?
일단 읽으려면 경로를 받아와야겠죠??
근데 그 경로를 절대경로로 받아올 경우 향후 빌드를 했을 때 target 안으로 들어가기 때문에
경로가 변경됩니다.. 그렇기 때문에 파일이 없다고 나오죠..
이를 유동적인 절대 경로로 받아오기 위해서는
아래와 같이 경로를 받아오면됩니다.
getClass().getResource("파일명"); |
간단하죠?? 그런데 여기서 몇가지 얘기를 더하려고 합니다.
일단 첫번째!! 파일명을 작성할 때 reousrces 폴더가 root라고 생각하고 반드시 "/" 를 먼저 작성해줘야한다는거죠
예를 들어서
resources/파일명.txt 라는 파일이 있다고 치면 이렇게 작성해야합니다.
getClass().getResource("/파일명.txt"); |
응용으로 resources/test/파일명.txt 일 경우에는
getClass().getResource("/test/파일명.txt"); |
이렇게가 되겠죠~?
이렇게 가면 바로 경로를 String 형태로 받아올 수 있구요
만약 파일을 그대로 스트림 형태로 읽을 것이다 하면
IOUtils.toString(getClass().getResourceAsStream("파일명"), "UTF-8"); |
을 하면됩니다~
물론 IOUtils 를 사용하려면 라이브러리를 추가해줘야겠죠~?
<dependency> |
'Development > Java/Android' 카테고리의 다른 글
GDAL 자바 프로젝트 적용 (3) | 2020.03.26 |
---|---|
[전자정부 표준프레임워크] 3.8 공통컴포넌트 사용 시 오류 확인해볼 사항 (0) | 2019.09.02 |
[Java] 압축 / 해제 모듈 (0) | 2018.08.05 |
[spring] Spring boot에서의 thymeleaf 재시작 없이 HTML 소스코드 반영 (0) | 2018.08.02 |
Maven을 이용한 자바 API 문서 만들기 (0) | 2015.07.07 |