BufferReader, BufferWriter

Lee kyu min·2024년 2월 19일

Java study

목록 보기
32/41
  • BufferedReader -> Scanner와 같이 입력 받음(Scanner보다 속도가 빠름)
  • Bufferedwriter ->System.out.println();과 같이 출력
    단, 속도가 scanner, System.out.println();보다 빠르다

1. BufferReader

1). 선언

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

2). String or int 자료형 저장예시

String str = br.readLine();
int i = Integer.parseInt( br.readLine() );	//readLine() 리턴값이 String형이라 형변환 필요

3). 예외처리

  • readLine()사용시 예외 처리를 해주어야 한다
    (try & catch) or (throws IOException)

2. BufferWriter

1). 선언

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

2). 출력

bw.write();		//BufferedWriter 객체를 이용해 출력
bw.flush();		//Buffer에 있는 것 한번에 출력	
bw.newLine();	//줄바꿈
  • write한다고 바로 출력되지 않는다.
    buffer에 저장해 두었다가 flush되거나 close 되었을때 한번에 출력 stream에 반영

3). 뒤처리

bw.close();
  • close는 stream을 닫기 때문에 계속 출력할거면 flush 사용
  • 줄바꿈 bw.newline();
  • 출력값이 int형인 경우 String형으로 바꿔줘야한다
String.valueOf(int형 출력값)

3. 예시

(출처 : 백준 15552번 문제)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;
		int T = Integer.parseInt(br.readLine());
		
		for (int i = 0; i < T; i++) {
			st = new StringTokenizer(br.readLine());
			bw.write(  (Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken())) + "\n" );
		}
		bw.close();
	}

}

0개의 댓글