반응형
일반적으로 Java에서 입출력은 System.out.print 구문과 Scanner를 이용합니다.
하지만 위의 방법 말고도 BufferedReader와 BufferedWriter가 있습니다.
BufferedReader와 BufferedWriter는 Scanner와 print구문에 비해서 사용하기 불편하지만 대량의 데이터를 입출력 해야할 때 속도가 빠릅니다.
1. BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String a = br.nextLine(); // 입력하는 한 줄(개행)을 a 변수에 String 값으로 저장
int b = Integer.parseInt(br.nextLine()); // 입력하는 한 줄(개행)을 a 변수에 Int 값으로 저장
/***** StringTokenizer 사용방법 *****/
// StringTokenizer st = new StringTokenizer(br.readLine(), " "); // 아래 선언과 같은 의미
StringTokenizer st = new StringTokenizer(br.readLine()); // StringTokenizer 선언
String nextWord = st.nextToken(); // 읽은 데이터를 공백을 기준으로 분리, 한 단어씩 읽음
BufferedReader는 기본적으로 String값으로 읽어오기 때문에 다른 형으로 가져오기 위해선 형 변환이 필수입니다.
한 줄로 읽어온 데이터를 공백을 기준으로 나눌 때 사용하는 것이 StringTokenizer 입니다.
입력 데이터 : a b c d e
위의 st.nextToken()의 처음 실행 했을 때 a를 불러오고, 다음 실행 했을 때는 b를 불러오는 식입니다.
* StringTokenizer 선언 시 두 번째 인자에 구분자를 넣어주시면 원하시는 구분자로 사용할 수 있습니다.
※ String.split()으로 구분 가능
2. BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("abcde\n"); // 자동 개행이 이루어지지 않기 때문에 \n을 넣어 개행
bw.flush(); // 버퍼의 남은 데이터를 모두 출력
bw.close(); // 버퍼를 닫음
BufferedWriter를 사용 시, flush()와 close()를 사용해야 정상적으로 사용이 가능합니다.
또한, 자동 개행이 없기 때문에 \n(개행 문자)를 넣어 개행시켜줍니다.
반응형
'BE > Java' 카테고리의 다른 글
[JAVA] Date, SimpleDateFormat, Calendar 사용법 (0) | 2021.03.23 |
---|---|
[JAVA] BigDecimal 자료형 사용방법 (0) | 2021.03.16 |
[JAVA] EOF(End of File) 처리 방법 (0) | 2021.02.23 |
[Java] String to Int / Int to String 변환 방법 (0) | 2021.02.17 |
[Java] String 문자열 치환(replace, replaceAll, replaceFirst) (0) | 2021.02.13 |