가자미의 개발이야기
[자바] 텍스트 읽어서 특정 기호 기준으로 나누기 본문
다음과 같이 탭을 기준으로 농구 선수 이름과 스탯이 적혀있는 텍스트 파일을 나눠서 저장하려면 어떻게 해야 할까.
안테토쿰보 8 7 2 5 6 7 약 f
브래들리빌 7 2 7 4 8 6 중 g
스테판커리 6 1 10 3 4 5 중 g
루카돈치치 7 4 5 5 9 7 중 g
조엘엠비드 6 9 6 5 6 6 약 c
카이리어빙 7 1 8 3 8 6 강 g
니콜라요키치 7 6 7 4 7 7 강 c
카와이레너드 7 5 7 8 6 5 강 f
제이슨테이텀 6 5 7 7 5 7 약 g
데빈 부커 7 2 7 4 7 7 강 g
폴 조지 6 4 7 8 6 7 중 f
루디고베어 3 10 0 3 3 8 약 c
제임스하든 8 4 8 5 8 9 강 g
잭 라빈 6 3 7 7 5 8 강 g
데미안릴라드 7 2 9 3 7 7 강 g
도노반미첼 7 1 8 3 6 6 중 g
크리스 폴 5 5 7 8 8 6 강 g
줄리어스랜들 6 6 6 6 5 8 약 f
벤 시몬스 7 7 1 9 5 8 약 g
제일런브라운 6 6 5 8 4 7 약 g
니콜라부세비치 7 8 6 5 5 6 약 c
자이온윌리엄슨 9 6 2 8 5 9 약 c
르브론제임스 8 8 8 8 8 7 강 f
케빈듀란트 7 7 9 6 4 5 강 f
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
public class MakePlayer {
protected Set<Player> playerData = new HashSet<Player>();
public Set<Player> loadPlayer() {
File playerFile = new File("playerWithStat.txt");//파일불러오기
String[] splitedStr = null;//분리된 스탯 저장하는 배열
try(BufferedReader reader = new BufferedReader
(new InputStreamReader(new FileInputStream(playerFile),"UTF-8"))){//한글깨짐현상을 막기 위함.
String line = null;
splitedStr = null;
while((line=reader.readLine())!=null) {
splitedStr=null;
splitedStr=line.split("\t"); //탭에 따라 나눠서 배열에 넣음
for (int i=0;i<splitedStr.length;i++) {
splitedStr[i]=splitedStr[i].trim(); //스탯 양 옆 공백 제거
}
playerData.add(new Player(splitedStr[0], Integer.valueOf(splitedStr[1]), Integer.valueOf(splitedStr[2]),
Integer.valueOf(splitedStr[3]), Integer.valueOf(splitedStr[4]),Integer.valueOf(splitedStr[5]),
Integer.valueOf(splitedStr[6]),splitedStr[7],splitedStr[8])); //스탯을 형에 맞게 입력
}
}
catch(IOException e) {
e.printStackTrace();
return null;
}
return playerData;
}
}
split('해당 문자 포맷팅') 메소드를 통해 분리해낼 수 있다.
'Java > 자바 기본 문법' 카테고리의 다른 글
[자바] 경로 표현을 위한 Path 인터페이스 (0) | 2021.03.01 |
---|---|
[자바] 상대경로와 절대경로 (0) | 2021.02.28 |
[자바]I/O 스트림 기반의 인스턴스 저장 (0) | 2021.02.28 |
[자바] 문자 스트림 (0) | 2021.02.26 |
[자바] 필터 스트림 (0) | 2021.02.26 |