[Java] BufferedReader , BufferedWriter 사용법

Dreamer·2024년 1월 23일

공부 이유

  1. 코딩 테스트 준비를 시작하면서, 입력 값도 넣어줘야 한다는 사실을 알게 됨.
  2. Scanner()로 입력 값을 넣어줌.
  3. 시간이 너무 오래걸려서 문제 풀이 실패 한 경험이 생김.
  4. 다른 입력함수를 찾아봄 = BufferedReader()
    + BufferedWriter() 출력 함수도 같이 공부

입력 함수 : BufferedReader

Scanner VS BufferdReader : 속도의 차이
BufferdReader가 빠른 이유 = 입력된 데이터가 Buffer를 거쳐 전달 된다.

❓Buffer를 거쳐서 전달 되는데 왜 더 빠르지?

사용법

1. 선언 - import 필요

import java.io.BufferedReader;
import java.io.InputStreamReader;

BufferedReader br = new BufferedReader (new InputStreamReader(System.in));

2. 입력 받기

readLine() 함수
-> br.readLine()

⭐ 입력 받기 주의⭐
2-1. return 값이 String으로 고정되어 있다. -> 필요 시 형변환 하기
2-2. 예외 처리를 꼭 해줘야 한다.
import java.io.IOException; main class 옆에 throws IOException

❓예외 처리를 꼭 해줘야하는 이유?

3. String -> 숫자로 형 변환 하는 방법

3-1. 입력 받은 문자를 숫자로 변환
Integer.parseInt();

3-2. 입력받은 문자를 특정 문자 기준으로 자르기 (대표적인 방법 2개)

  • String.split() : 문자열 함수 이용
    반환이 무조건 String[]

  • StringTokenizer() -> 선언 후 사용
    StringTokenizer st = new StringTokenizer();
    StringTokenizer 생성자에 입력 받을 문자를 넣은 후
    nextToken() 함수로 하나씩 가져와 사용 가능!!!
    ⭐공백이 아닌 특정 문자를 기준으로 자르고 싶을 때⭐
    StringTokenizer st = new StringTokenizer(문자열, "자를 문자");

4. BufferedReader는 close를 안해줘도 된다..?

br.close(); -> 더 공부하기!

출력 함수 : BufferedWriter

사용법

1. 선언 - import 필요

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

2. 메소드

.write(); -> Buffer에 있는 값 전부 출력
.flush(); -> 남아있는 데이터를 모두 출력 (마지막에 한번만!)
.close(); -> 스트림을 닫음 (마지막에 한번만!)

⭐ System.out.println() 처럼 자동 개행 기능 x -> \n 사용


❓부분 채우기
1. Buffer를 거쳐서 전달 되는데 왜 더 빠르지?
2. 예외 처리를 꼭 해줘야하는 이유?
3. BufferedReader는 close를 안해줘도 된다?

+ 예제도 넣기!


참고 자료
https://m.blog.naver.com/ka28/221850826909

profile
Moving forward based on records

0개의 댓글