Programming/Java

Java 입출력 BufferedReader, BufferedWriter

whitele 2021. 5. 15. 16:35
반응형

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
반응형