본문 바로가기
Java&Spring

[ Java ] BufferedReader , BufferedWriter ,StringTokenizer

by JINJINC 2023. 8. 6.
728x90
반응형

BufferedReader 

-  Scanner 와 유사 

- 버퍼를 이용해서 읽는 함수, Scanner 보다 빠른 속도

- 버퍼가 가득차거나, 개행문자가 나타나면, 버퍼의 내용을 한번에 전송함 

- String 으로 고정되어 입력 받음 , 데이터 가공이 필요함

 

※   예외처리 필요함  main 클래스 옆에  throw IOException를 작성해야함 

또는 try&catch 를 활용하여 예외처리도 가능 

 

import java.io.*

BufferedReader br = new BufferedReader(new InputStreamReader( System.in));
String s = bf.readLine();  // Stirng 
int i = Integer.parseInt(bf.readLine()); //Int

BufferedReader 의 readLine()을 사용하면 데이터를 라인 단위로 읽을 수 있다. 

 

 

 

StringTokenizer(String str) 

- 구획문자( delimiter)을 인자로 받지않는 생성자( 디폴트 구획문자로 공백문자를 가진다)

- 구획문자는 2자리 이상도 설정할 수 있다. 구획문자를(String delim) $% 라고 설정하면 $,%를 기준으로끊어준다. 

- %%라고 설정하면 %를 기준으로 끊어준다. 즉 구획 문자는 길이가 1로 고정이고 길이가 2이상인 구획문자를 받으면 구획문자가 여러개가 된다. 

* import  java.util.* ; 

 

<주요함수>


countTokens()  :  토큰의 갯수를 리턴한다.

nextToken() : 다음 토큰을 리턴한다. 이전 토큰은 제거한다.

nextToken(String delim) : 구획문자를 delim으로 바꾼 후 바뀐 다음 토큰을 리턴한다. 

hasMoreTokens()  : 리턴할 다음 토큰이 있으면 true를 다음 토큰이 없으면 false를 리턴한다.


String str = " this is my String";
StringTokenizer st = new StringTokenizer(str, " ");
System.out.println(st.countTokens());     // 결과 4

while(st.hasMoreOkens()){
	System.out.println(st.nextToken());    
    }
     /*  결과 
     	this
        is
        my
        String
     */
System.out.println(st.countTokens());   // 결과 0

 

BufferedWriter 

- System.out.pringtln()유사 

* import java.io.* 

import java.io.*;

BufferedWriter bw = new BufferedWriter( new FileWriter("bufferedWriter.txt"));
bw.writer("hello\n");//출력 
bw.newLine(); // 개행 즉 엔터 역할
bw.writer("i am writing\n"); // 개행과 함께 출력
bw.flush(); // 남아있는 데이터를 모두 출력
bw.close(); // 스트림

버퍼를 이용하는 거기 떄문에 다 쓴 뒤에는 버퍼를 클린하게 해줘야 함. 

flush()함수를 통해 버퍼에 남아있는 데이터를 출력해 없앤 후, 스트림을 닫아줘야 함

 

728x90
반응형

'Java&Spring' 카테고리의 다른 글

[Spring] AOP 관점지향 프로그래밍  (0) 2023.04.04
[Spring] spring?  (0) 2023.04.04
[Java&Spring] opp 정렬체 구현  (0) 2023.03.27

댓글