본문 바로가기
공부하기!/JAVA

BufferedReader, BufferWriter 사용하기 + String 처리

by 갈매기^0^ 2022. 11. 30.

ㄴ BufferedReader 사용

Scanner sc = new Scanner(System.in)보다 훨씬 빠른 속도를 제공한다.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] command = br.readLine().split(" "); // 한줄에 빈칸 하나씩 받아서 배열에 저장

ㄴ BufferedWriter 사용

println()보다 훨씬 빠른 속도를 제공한다.

이때, 버퍼를 잡아 놓았기 때문에 반드시 flush() / close() 를 반드시 호출해 주어 뒤처리를 해주어야 한다. 해주지 않는다면 GC가 처리해준다지만, 정상적으로 writing이 되지 않는 경우가 많다. 

그리고 bw.write에는 자동개행기능이 없기때문에 "\n"를 통해 따로 처리해주어야합니다.

BufferedWiter bw = new BufferedWriter(new OutputStreamReader(System.out));
bw.write("hello world \n");
bw.flush();
bw.close();

ㄴ StringTokenizer

StringTokenizer st = new StringTokenizer("문자열") // 띄어쓰기 기준으로 문자열을 분리
StringTokenizer st = new StringTokenizer("문자열", "구분자")// 구분자를 기준으로 문자열을 분리 
StringTokenizer st = new StringTokenizer("문자열" , "구분자" , true/false) //구분자를 기준으로 문자열을 분리할 때 구분자도 토큰으로 넣는다.(true)
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
		StringTokenizer st = new StringTokenizer(br.readLine());
		int n1 = Integer.parseInt(st.nextToken());
        
        while(st.hasMoreTokens()) {
			int temp = Integer.parseInt(st.nextToken());
		}

st.hasMoreTokens() -> StringTokenizer 클래스 객체에서 다음에 읽어 들일 token이 있으면 true, 없으면 false를 return한다.

nextToken() -> 값에 구분된 값에 접근 할 수 있다.

ㄴ StringBuilder

String과 문자열을 더할 때 새로운 객체를 생성하는 것이 아니라 기존의 데이터에 더하는 방식을 사용하기 때문에 속도도 빠르며 상대적으로 부하가 적다.

StringBuilder sb = new StringBuilder();

sb.append(문자열)

System.out.println(sb.toString())으로 출력 할 수 있다

 

'공부하기! > JAVA' 카테고리의 다른 글

Comparator VS Comparable  (0) 2024.01.02
나누기 계산하기 , 소수점 표현  (0) 2022.11.30
[JAVA] if문과 객체  (0) 2022.10.14
[JAVA] 상수와 형변환, 반복문  (0) 2022.10.14