Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 데이터 압축
- Java Rest
- requestheaderdto
- HandlerMethodArgumentResolver
- Graphql Client
- 바이트 절삭
- Checked Exception
- Sub Bytes
- AfterMapping
- 상호 인증
- Open Close Principal
- 이중정렬
- 개방 폐쇄 원칙
- Request Body 여러 번 사용
- try - with - resources
- Srping MVC
- mapstruct
- Jndi DataSource
- graphql
- Tomcat DBCP
- mTLS
- java
- NoUniqueBeanDefinitionException
- Java Graphql
- Reading HttpServletRequest Multiple Times
- Socket is closed
- Java Singleton
- tomcat jndi
- Unchecked Exception
- WildFly
Archives
- Today
- Total
Developer Sang Guy
[Java] Class에서 파일 읽어오기 (tomcat, wildfly) 본문
package first;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
// 상대 경로로 같은 패키지(디렉토리) 안에 있는 파일 읽어오기
BufferedReader br1 = new BufferedReader(new InputStreamReader(Main.class.getResourceAsStream("text.txt")));
System.out.println(br1.readLine());
// 상대 경로로 다른 패키지(디렉토리) 안에 있는 파일 읽어오기
BufferedReader br2 = new BufferedReader(new InputStreamReader(Main.class.getResourceAsStream("../resource/resource.txt")));
System.out.println(br2.readLine());
// 절대 경로로 같은 패키지(디렉토리) 안에 있는 파일 읽어오기
BufferedReader br3 = new BufferedReader(new InputStreamReader(Main.class.getResourceAsStream("/first/text.txt")));
System.out.println(br3.readLine());
// 절대 경로로 같은 패키지(디렉토리) 안에 있는 파일 읽어오기
BufferedReader br4 = new BufferedReader(new InputStreamReader(Main.class.getResourceAsStream("/resource/resource.txt")));
System.out.println(br4.readLine());
}
}
메인 클래스와 같은 경로에 있는 텍스트 파일
리소스 파일
메인 클래스와 같은 경로에 있는 텍스트 파일
리소스 파일
getResourceAsStream은 ClassLoder를 사용하여 파일을 읽어오는 기능을 제공한다.
절대 경로를 사용할 때의 기본 경로는 RumTime Classpath이다.
만약 톰캣을 사용한 웹 애플리케이션의 경우 아래의 경로를 순서대로 클래스 또는 리소스를 읽어들인다.
1. JVM의 부트스트랩 클래스
- Java Virtual Machine에서 제공하는 기본 런타임 클래스와 System Extensions 디렉토리( $JAVA_HOME/jre/lib/ext)에 있는 JAR 파일의 모든 클래스를 포함
2. 웹 애플리케이션의 /WEB-INF/classes
3. 웹 애플리케이션의 /WEB-INF/lib/*.jar
4. 시스템 클래스 로더 클래스
- https://tomcat.apache.org/tomcat-9.0-doc/class-loader-howto.html 참고
5. 공통 클래스 로더 클래스
- Tomcat 내부 클래스와 모든 웹 애플리케이션이 공유할 수 있는 클래스를 포함
'Java' 카테고리의 다른 글
Sub Bytes To String (0) | 2024.02.14 |
---|---|
[JWT] Auth0을 활용한 JWT 생성 및 확인 (0) | 2023.04.10 |
Socket is closed (0) | 2022.12.22 |
Checked Exception, Unchecked Exception (1) | 2022.11.26 |
데이터 압축 (0) | 2022.05.26 |
Comments