[JAVA] BufferedReader 와 Bufferedwriter 사용법

밀크야살빼자·2023년 7월 9일
0

BufferedReader

  • 버퍼를 이용한 입력
  • readLine()과 close() 메소드가 있다.
  • Scanner와 유사하다.
  • Enter만 경계로 인식하고 받은 데이터가 String으로 고정되기 때문에 입력 받은 데이터를 가공하는 작업이 필요한 경우가 많다.

BufferedReader 사용법

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
String s = bf.readLine(); //String
int i = Integer.parseInt(bf.readLine()); //Int
  • throw 이용시 클래스에 import java.io.IOException를 작성 해주어야 한다.
  • main 클래스 옆에 public static void main(String[] args) throws IOException를 작성한다.
  • readLine()을 사용하면 데이터를 라인 단위로 읽을 수 있다.
  • readLine()은 입력값으로 들어온 데이터를 한 줄로 읽어서 String으로 바꾸는 메소드이다.
    • 무조건 한 줄만 읽는다
  • StringTokenizer의 nextToken함수를 이용하거나 String 클래스의 split 함수를 이용하여 구분한다.
  • IOException 예외 처리를 반드시 해야한다.
  • 입력 작업이 끝나서 BufferedReader를 더 이상 사용할 필요가 없게 되면 close()를 통해서 입력 스트림을 닫고 사용하던 자원을 해제하면 된다.
5
12345

첫 번째 줄의 5는 배열의 사이즈고, 두 번째 줄은 배열의 요소라고 한다면, 이때 5는 readLine()을 통해서 읽고, Integer.parseInt()로 int 타입으로 바꾸면 된다. 두 번째 줄은 요소 하나 하나를 가져와야하기 때문에 readLine()을 통해서 읽고, StringTokenizer나 split()을 통해 "1","2",...,"5"로 따로 입력을 읽고, 배열에 집어 넣어야 한다.

BufferedWriter

  • 버퍼를 이용한 출력한다.
  • System.out.println();과 유사하다.
  • write(), flush(), close() 메소드가 있다.
  • 버퍼를 이용한 후에는 버퍼를 클린하게 해줘야 한다.
  • flush() 함수를 통해서 버퍼에 남아있는 데이터를 출력해 없앤 후, 스트림을 닫아준다.

BufferedWriter 사용법

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));   //할당된 버퍼에 값 넣어주기
String s = "abcdefg";   //출력할 문자열
bw.write(s+"\n");   //버퍼에 있는 값 전부 출력
bw.flush();   //남아있는 데이터를 모두 출력시킴
bw.close();   //스트림을 닫음
  • write()를 사용하여 출력할 내용을 담고, flush()를 통해서 버퍼를 비워내는 동시에 콘솔에 출력하면 된다.
  • BufferedWriter의 경우 버퍼를 잡아 놓았기 때문에 반드시 flush()/close()를 반드시 호출해 주어 뒤처리를 해주어야 한다.
    • flush()를 통해서 버퍼를 비워내는 동시에 콘솔에 출력하면 된다.
    • write()만 사용한다고 콘솔에 출력이 되는 것은 아니고, 반드시 flush()를 써 주어야 한다.
  • bw.write에는 System.out.println();과 같이 자동개행기능이 없기 때문에 개행을 해주어야할 경우에는 \n를 통해 따로 처리해주어야 한다.
  • IOException 예외 처리를 반드시 해주야 한다.

📜참고자료

https://m.blog.naver.com/ka28/221850826909
https://jhnyang.tistory.com/entry/Java-%EC%9E%90%EB%B0%94-%EC%9E%85%EC%B6%9C%EB%A0%A5-BufferedReaderBufferedWriter

profile
기록기록기록기록기록

0개의 댓글