본문 바로가기
넓고 얕은 자료구조 & 알고리즘/JAVA 알고리즘 문제를 위한 스킬

[JAVA] BufferedReader & BufferedWriter

by 팡펑퐁 2022. 9. 17.
728x90

BufferedReader

 입력 스트림의 문자를 읽는 함수로, 문자들을 버퍼에 저장하고 읽기 때문에(모아뒀다가 한 번에 처리) 처리 속도가 매우 빠르다. Scanner의 기능과 유사하다. String 타입으로만 받을 수 있어 형변환이 필요하다. 

 

관련 메서드

메서드 설명
.readLine()  입력값을 한 줄로 받아 String으로 바꾼다.
.read() 문자 하나를 읽어 그에 해당하는 ASCII 10진수 int값으로 리턴

 

BufferedWriter

 system.out.print의 기능과 유사하다. 처리 속도가 훨씬 빠르다. 

 

관련 메서드

메서드 설명
.write()  개행을 위해서는 .write("\n")을 써야한다.
.newLine() 개행을 함
.flush()  모아둔 데이터를 모두 출력
.close() 스트림 닫기
 두 클래스의 메소드들은 입출력 에러가 발생하면 IOException을 던지도록 정의 되어있으므로 보통 메인함수에 throws IOExeption을 통해 예외처리를 한다.

 

코드 예시

import java.io.*; // readLine 및 vufferedReader, Writer를 이거 하나로 사용할 수 있음
public class Main {
    public static void main(String[] args) throws IOException {
        // BufferedReader,Writer를 사용하기 위해서는 throws IOException을 적어줘야 함. 
        // 두 클래스는 입출력에러가 발생하면 자체적으로 IOException이 발생하는데, 이를 미리 방지하는 것.

        // 객체 생성
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter((new OutputStreamWriter(System.out)));

        String str = br.readLine(); // readLine 메서드는 입력값 한 줄을 스트링으로 받음
        
        // 스트링 형식 지정해서 출력하기
        bw.write(String.format("%s", 변수명 등))
728x90

'넓고 얕은 자료구조 & 알고리즘 > JAVA 알고리즘 문제를 위한 스킬' 카테고리의 다른 글

객체 정렬 - Comparator  (0) 2022.09.18
Arrays.toString()  (0) 2022.09.18
System.arraycopy()  (0) 2022.09.18
.split()  (0) 2022.09.18
substring()  (0) 2022.09.02