본문 바로가기
Programming/Java

Java 입출력 BufferedReader, BufferedWriter

by whitele 2021. 5. 15.
반응형

BufferedReader

 Scanner가 등장하기이전에는 BufferedReader를 사용했습니다. Scanner보다 기능이 한정적이고 코딩에도 Scanner보다는 번거롭기 때문입니다. 그런데 아직도 지금도 사용하는 이유에는 속도 때문입니다.

 

Buffered Reader 사용

import java.io.*;
public class Main{
    public static void main(String args[]) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        String str=br.readLine();
    }
}

import java.io.*;

throws IOException을 꼭 포함해야합니다.

throws IOException은 IOException에 대한 예외처리를 하지 않으며 IOException에 대한 처리를 준비해야한다는 선언입니다.

 

BufferedReader를 사용하면 기본적으로 문자열로 받기 때문에 int형등 다른 자료형으로 사용해야 할 때 변환이 필요합니다.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
int i = Integer.parseInt(br.readLine()); 

Buffered Writer

buffered Writer역시 buffer를 사용하는 점에 있어서 Bufffered Reader와 크게 다르지않습니다. 사실 주로 사용하던 System.in.print("내용");과 크게 속도 차이는 없지만 문자열의 크기에 따라서 Buffered Writer를 사용하는 것이 유리할 수도 있습니다.

BufferedWriter 사용

import java.io.*;
public class bf{
    public static void main(String[] args) throws IOException{
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
        int n=Integer.parseInt(br.readLine());
        bw.write(n.toString());
        bw.flush();
        bw.close();
    }
}

 

  bw.write를 통해 buffer에 저장하고 그후 bw.flush를 입력하여 버퍼에 있는 내용들을 출력해야합니다.

 그리고 bw.close 로 반드시 스트림을 닫아줘야 합니다.

728x90
반응형

댓글