본문 바로가기
Java/TIL (Today I Learned)

[JAVA] BufferedReader / BufferedWriter

by 정재인 2023. 1. 26.

 정의

 - 버퍼를 통해 읽고 쓰는 함수

 - 입 출력 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후 전달

 - Scanner를 사용하는 것보다 속도가 빠름

 

 생성자

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

 

메소드 종류 

메소드 명 기능
BufferedReader(Reader rd) rd에 연결되는 문자 입력 버퍼 스트림 생성
BufferedWriter(Writer wt) wt에 연결되는 문자 출력 버퍼 스트림 생성
int read() 스트림으로부터 한 문자를 읽어 int형으로 리턴
int read(char[], buf) 문자 배열 buf의 크기만큼 문자를 읽음
int read(char[] buf, int offset, int length) bufoffset 위치에서부터 length 길이만큼 문자를 스트림으로부터 읽음
String readLine() 스트림으로부터 한 줄을 읽어 문자열로 리턴
void close() 스트림을 닫음
void write(int c) int형으로 문자 데이터를 출력 문자 스트림으로 출력
void newLine() 줄 바꿈 문자열 출력
void flush() 남아있는 데이터를 모두 출력

 

BufferedReader / BufferedWriter 사용법

 - IOException , try catch문 등 예외처리 필요

 - BufferedReader는 한 라인을 읽기 때문에, StringTokenizer를 통해 공백 단위 데이터 가공 필요

 - BufferedWriter는 write로 출력하기때문에 \n으로 개행 필요

 - flush()로 남아있는 데이터를 모두 출력 후 close()로 닫음

 

 사용 예 (백준 No.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 No15552 {

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int t = Integer.parseInt(br.readLine());
		
		for(int i = 0; i < t; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			int a = Integer.parseInt(st.nextToken());
			int b = Integer.parseInt(st.nextToken());
			
			bw.write((a + b) + "\n");
					
		}
		br.close();
		bw.flush();
		bw.close();
	}

}

 


 백준 No.15552

 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net

 

'Java > TIL (Today I Learned)' 카테고리의 다른 글

[JAVA] contains() / replace()  (0) 2023.02.07
[JAVA] StringBuilder  (0) 2023.02.06
[JAVA] Overloading / Overriding  (0) 2023.01.30
[JAVA] EOF (End Of File)  (0) 2023.01.28
[JAVA] 이스케이프 시퀸스 (escape sequence)  (0) 2023.01.21

댓글