JAVA/JAVA - API정리 / / 2020. 2. 2. 17:15

[Java] BufferedReader, BufferedWriter를 활용한 빠른 입출력

반응형

BufferedReader

  • Scanner : 통해 입력을 받을경우 Space Enter를 모두 경계로 인식.
  • BufferedReader : Enter만 경계로 인식, 받은 데이터가 String으로 고정.
    Scanner에 비해 다소 사용하기 불편하지만 많은 양의 데이터를 입력받을경우 BufferedReader로 입력받는 것이 효율적

    1. 작업속도에 차이가 많이난다. ( 알고리즘의 효율성 검사에 유리1. readLine() 리턴값은 String으로 고정(다른타입으로 입력을 받을려면 형변환 필요)
    2. 예외처리를 꼭 해주어야한다.(보편적으로 throws IOException을 통하여 예외처리)
    (try & catch를 활용하여 예외처리 또한 가능))

 

BufferedReader 사용 방법

1
2
3
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
String s = bf.readLine(); //String
int i = Integer.parseInt(bf.readLine()); //Int
 


readLine()으로 입력받을 때 주의할점이 두가지

1. readLine() 리턴값은 String으로 고정(다른타입으로 입력을 받을려면 형변환 필요)
2. 예외처리를 꼭 해주어야한다.(보편적으로 throws IOException을 통하여 예외처리)
(try & catch를 활용하여 예외처리 또한 가능)

 

Read한 데이터 가공

1
2
3
4
5
StringTokenizer st = new StringTokenizer(s); //StringTokenizer인자값에 입력 문자열 넣음
int a = Integer.parseInt(st.nextToken()); //첫번째 호출
int b = Integer.parseInt(st.nextToken()); //두번째 호출
 
String array[] = s.split(" "); //공백마다 데이터 끊어서 배열에 넣음

대표적인 두가지 방법

1.  StringTokenizer에 nextToken()함수를 통한 공백 단위의 구분.
2. String.split 함수를 활용

 

 BufferedWriter 

출력양이 많을 경우 Buffer를 활용해주는것이 효율적.

BufferedWriter 사용법

1
2
3
4
5
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));//선언
String s = "abcdefg";//출력할 문자열
bw.write(s+"\n");//출력
bw.flush();//남아있는 데이터를 모두 출력시킴
bw.close();//스트림을 닫음
 
 

BufferedWriter의 경우 반드시 flush() / close() 를 호출해 닫아주어야 한다.
자동 개행이 없기 때문에 \n 을 통해 개행을 해야 한다.

주요 Method

출처 : https://coding-factory.tistory.com/251

 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유