Java

[JAVA] BufferedReader, BufferedWriter

유호야 2021. 5. 28. 01:14
반응형

BufferedReader

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

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

 

BufferedReader 사용 방법

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한 데이터 가공

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 사용 방법

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://machine-geon.tistory.com/79

반응형