본문 바로가기

JAVA/Study

20. BufferedWriter ,BufferedReader,StringTokenizer

package chapter3;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;



public class BufferedReaderex {

	public static void main(String[] args) throws IOException {
		//스캐너처럼 br로 선언
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		
		//nextLine();같은것
		String str=br.readLine();
		
		//System.out.println(str);과 같이쓰려면
		BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
		bw.write(str);//write로 버퍼에 입력
		bw.flush();//flush로 출력후 버퍼를 비움
		br.close();
		bw.close();
	}

}

쓰기 복잡한데 이것이 컴퓨터에서는 더 빠르게 입 출력이 가능하다

문제를 푸는데 이것도 필요한것같아서 더 추가기술함

StringTokenizer st(변수명) = new StringTokenizer(문자열[,구분자][,true/false] );

[]안에는 생략가능한것을 넣었다

(문자열); 만 할시 띄어쓰기 기준으로 문자열을 분리하고

(문자열,구분자);를 할 시 구분자를 기준으로 문자열을 분리한다

 ex) (br.readLine(),"1");

br.readLine()으로 입력한 문자열을 "1" 1 기준으로 문자열을 분리

(문자열,구분자,true/false); 를 할시엔 구분자를 기준으로 문자열을 분리하지만

구분자도 분리한것에 포함 시킬지의 유무이다

-기본값은 false로 되어있음

ex) (br.readLine(),"ㅡ",true);

 

123

456

이런식으로 ㅡ도 포함돼서 총 4개로 분리된다

 

만든토큰은 nextToken()을 이용해서 받아올수있고 한개씩받아온다

이때 nextToken()의 타입은 String이고

nextToken(String 문자열에 썻던 값) 을 통해 내가 뽑고자하는것도 갖고올수있다(썻던값을 입력하면 그다음이 선택됨)

남아있는 토큰이 있나 검사하는 방법은 hasMoreTokens(); 를 사용하면되고 True와 False로 나온다

토큰의 총개수를 구하는건 countTokens()가 있다