공부/Java

BufferReader 와 BufferWriter

KoreanPaper 2024. 6. 26. 10:45

1. BufferReader & BufferWriter 란?

  • 버퍼를 이용해 입출력을 하는 메소드이다.
  • 입력과 출력되는 데이터가 바로 전달되지 않고 중간에 버퍼링 과정을 거친 후, 전달된다.
  • BufferReader = Scanner 과 유사
  • BufferWriter = System.out.println(); 과 유사

2.  BufferReader & BufferWriter 사용 이유

  • Scanner은 입력된 데이터가 하나씩 즉시 전달되기 때문에 생각보다 시간이 걸린다.
  • 많은 양의 데이터를 처리할 때, 버퍼를 통해 데이터를 묶어 이동시키는 것이 더욱 효율적이고 빠름

3. Buffer 용어 정리

  • Buffer : 전송되는 데이터들을 일시적으로 임시 저장하는 메모리
  • Buffer Flush : 버퍼에 남아 있는 데이터를 출력 (버퍼를 비우는 동작)
  • BufferReader : 입력
  • BufferWriter : 출력

4. BufferReader & BufferWriter 사용법

BufferReader 사용

  • 리턴 값은 string으로 고정되기 때문에, 정수 (외 다른 타입)을 입력 받기 위해서는 형 변환 필요
  • readline()는 줄 단위(Enter)단위로 인식하기 때문에 가공 작업 필요
  • 예외처리 필요 (throws IOException 사용)
public static void main(String[] args) throws IOException {

//선언
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

//줄 단위로 인식
String str = bf.readLine();

//정수형으로 입력을 받는다면 형변환
int i = Integer.parseInt(bf.readLine());

//배열에 공백 단위로 끊어 데이터를 저장하여 사용할 수 있다.
String arr[]=str.split(" ");

System.out.println(str);
System.out.println(i);
System.out.println(arr[0]);
  }


BufferWriter 사용

  • 버퍼 관리를 위해 flush() 와 close()를 반듯 호출
  • bw.writer에는 자동개행이 없기 때문에 \n를 사용
public static void main(String[] args) throws IOException {

//선언
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String text = "hello";

//출력
bw.write(text);
bw.write("입력값은: "+str);

//줄 바꿈
bw.newLine();
     
//남아있는 데이터 모두 출력
bw.flush();

//스트림 닫기
bw.close();
> 
}


    

'공부 > Java' 카테고리의 다른 글

기본 문법(3)  (0) 2026.01.21
데이터 타입에 따른 저장 방식  (0) 2024.06.26
기본 문법(2)  (0) 2024.06.25
기본 문법(1)  (0) 2024.04.15
Java 란?  (0) 2024.04.15