[Java] BufferedReader , BufferedWriter 사용법

Dreamer·2024년 1월 23일
0

공부 이유

  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개의 댓글