Java

BufferedReader / StringTokenizer

bittersweet 2023. 7. 19. 18:04
반응형
  • BufferedReader란?
    • InputStreamReader에 버퍼링 기능이 추가된 클래스
    • 입력 스트림에서 문자를 읽는 함수
    • 버퍼링을 제공해주는 보조 스트림 라이브러리

 

 

  • BufferedReader 함수의 readLine(), read() 차이 비교
    • readLine() 메소드
      • 값을 읽어올 때 String값으로 개행문자를 포함하여 한 줄을 전부 읽어오는 방식 사용
      • ex) Scanner 메소드 중 nextLine()과 비슷하다.
      • int a = Integer.parseInt(br.readLine());
      • 한 줄 통째로 읽어온 뒤, Integer.parseInt()를 통해 형변환 해주기
    • read() 메소드
      • 값을 읽어올 때 int값으로 변형하여 읽어오는 방식 사용
      • ex) 1을 읽어온다면, 1이 아닌 ASCII 형식의 문자값 '1'을 읽어오는 것이므로 결국 49를 읽어온다.
      • sol -> int a = br.read() - 48; br.readLine();
      • ASCII 값을 고려한 뺄셈 연산 추가 및 개행(엔터)문자 처리

 

 

  • BufferedReader 사용 시 주의점
    1. new InputStreamReader 추가해주기 ★
    2. throws IOException을 꼭 해주어야 한다. 어디에? -> main 메소드에!!!!! ★★★
      ※가끔씩 main 메소드가 아닌, 다른 메소드 or 다른 클래스의 다른 메소드에 써주는 경우가 있는데,, 꼭 주의하자.

 

 


  • StringTokenizer란?
    • 구분자를 지정해 특정 문자열을 분리할 때 사용하는 자바에서 제공하는 클래스

 

  • StringTokenizer 클래스의 사용예제 및 함수
    • StringTokenizer st = new StringTokenizer(br.readLine(), " ");
    • (문자열, 구분 문자) 순으로 인자를 주면 되고, 해당 기준에 따라 문자열을 분리해준다.
    • nextToken() 메소드
      • StringTokenizer 클래스 객체에서 다음 토큰을 읽어들인다.
    • hasMoreTokens() 메소드
      • StringTokenizer 클래스 객체에서 다음에 읽어 들일 token이 있으면 true, 없으면 false를 return한다.
반응형