charon0530   4년 전

다음 코드와 같이 bw.flush(); 위치의 따라 맞고 틀림이 각각 발생하는데 왜 이런현상이 나타나는 건가요?

참고로 직접테스트한 경우에는 모두 같은 값을 출력했습니다.

clrmt   4년 전

BufferedWriter는 버퍼 크기 단위로 내부에 저장해두었다가 한 번에 출력하는거고 println은 즉시 출력하는겁니다. 그래서 이 둘이 섞이면 안 됩니다.

첫 번째 케이스가 되는 이유는 버퍼에 저장하자마자 바로 비웠기 때문에 println을 호출하는 시점에서 BufferedWriter의 버퍼에 아무것도 없기 때문입니다.

댓글을 작성하려면 로그인해야 합니다.