반응형
[Java 실습 #13] 파일 입출력(IO) - 파일 경로 찾기 ClassLoader 활용 (2) - jar 배포 후 jar파일 내부의 텍스트 파일 읽기
1. jar 배포 후 ClassLoader 활용하여 jar 내부의 텍스트 파일 읽기
2. 개발환경
3. 구현
3.1. 프로젝트 구조
3.2. 텍스트 파일 - csv 형태
3.3. 구현 - 소스코드
3.4. 배포 후 외부 텍스트 파일 저장 확인
4. 결과 화면 - IDE 콘솔창
1. jar 배포 후 java.net.URL 활용하여 외부 텍스트 파일 읽기
jar 파일 배포
[인텔리제이 (IntelliJ) #1] JAR 파일 배포 방법
2. 개발환경
MacOS M1 - macOS Monterey 12.0.1
JDK 1.8
IntelliJ IDEA 2021.2 (Community Edition)
3. 구현
3.1. 프로젝트 구조
3.2. 텍스트 파일 - csv 형태
[ sample-data.txt ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
ID, FIRST NAME, LAST NAME, AGE, GENDER, EMAIL, SALARY
=====================================================
1001 , Michael , Jordan, 23, M, michael@tester.com , 30_000_000
1002 , Michelle , Jordan, 24, F, michelle@tester.com , 31_000_000
1003 , Adrian , Grey , 25, M , adrian@tester.com , 32_000_000
1004 , Adriana , Grey , 26, F , adriana@tester.com , 33_000_000
1005 , Harry , Potz , 27 , M , harry@tester.com , 34_000_000
1006 , Harriot , Potz , 28 , F , harriot@tester.com , 35_000_000
1007 , Mary , Granger , 29, F , mary@tester.com , , 36_000_000
1008 , Susan , Little , 53 , F , susan@tester.com , 37_000_000
1009 , Peter , Johnson , 30 , M , peter@tester.com , 38_000_000
1010 , Maria , Storm , 31 , F , maria@tester.com , 39_000_000
1011 , Helen , Hays , 32 , F , helen@tester.com , 40_000_000
1012 , Zeus , Nolan , 33 , M , zeus@tester.com , 41_000_000
1013 , Hector , Wood , 34 , M , hector@tester.com , 42_OOO_000
1014 , Chris , Munteanu, 35 , M , chris@tester.com , 43_000_000
1014 , Boris , Jackson , 36 , M , boris@tester.com , 44_000_000
1015 , Boris , Johnson , 36 , M , boris@tester.com , 44_000_000
1016 , Jack , Hope , 37 , M , jack@tester.com , 45_000_000
1017 , Janet , Hope , 37 , M , janet@tester.com , 46_000_000
|
3.3. 구현 - 소스 코드
ClassLoader.getResourceAsStream() 활용하여 파일 경로 찾기
BufferedReader, FileReader 활용하여 파일 읽기
[ App03.java ]
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
32
|
package io.home.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class App03 {
private static String FILE_PATH = "resource";
private static final String FILE_NAME = "sample-data.txt";
public static void main(String[] args) {
InputStream is = App03.class.getClassLoader().getResourceAsStream(FILE_PATH + "/" + FILE_NAME);
if (is == null) {
System.out.println("File not found!");
return;
}
System.out.println("Read text with ClassLoader.getResourceAsStream()!\n");
try (BufferedReader br = new BufferedReader(new InputStreamReader(is))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException ioe) {
System.out.println("Cannot read file!");
ioe.printStackTrace();
}
}
}
|
3.4. 배포 후 jar 파일 단독 실행
4. 결과 화면 - 배포 후 터미널 실행
1
|
java -jar file-io-read-line-classLoader.jar
|
반응형