Java/Java 문법

[java] 자바 출력 스트림 (StringBuider 와 bufferedWriter 차이점, bufferedWriter 한계)

민돌v 2021. 4. 19. 20:39

백준 1874번 알고리즘 문제를 풀다가 짧게 2가지의 차이점에 대해서 기록해 놓을려고 한다.

먼저

1. BufferedWriter

- BufferedReader 와 BufferedWriter 를 함께 쓰는 사람이 굉장히 많다 나도 그렇고,

- 만능처럼 생각하며 사용을 해왔는데 BufferedWriter의 한계점을 발견하였다.

(결론)

- BufferedWriter 는 비동기적 버퍼 스트림이므로, 입력받은 데이터가 받아져서 버퍼가 꽉차버리면,

버퍼안에 있는 데이터를 자동적으로 비운다.(출력한다.)

- flush() 함수를 사용하는 이유는 버퍼가 다차지 않았는데 출력을 하기 위해서 이다.

2. StringBuider

- StringBuider는 한마디로 변경가능한 문자열이다.

StringBuilder 사용법 예시

StringBuilder sb = new StringBuilder(); sb.append("start"); System.out.println(sb);

- 그냥 문자열이기 때문에 매우 간단하다.

* StringBuilder를 사용하는 이유는

- 보통 비동기적으로 동작하는 경우가 많을 때 StringBuilder() 함수를 이용하는게 안전하다.