개발 일반

bufferwriter에서 close와 flush

뮤츠 2024. 12. 3. 22:45

bufferwriter에서 flush는 bufferwriter에 담긴 문자열을 전부 방출하고, close는 버퍼를 닫는것으로만 생각했었다.

그런데...코드를 확인해보니, close에 flush의 기능도 하고있음을 알게되었다.

 

public void flush() throws IOException {
        synchronized (lock) {
            flushBuffer();
            out.flush();
        }
    }

    @SuppressWarnings("try")
    public void close() throws IOException {
        synchronized (lock) {
            if (out == null) {
                return;
            }
            try (Writer w = out) {
                flushBuffer();
            } finally {
                out = null;
                cb = null;
            }
        }
    }

 

flushBuffer 매서드를 호출하면서 buffer를 비워주고있다.

여태껏 문제풀때 마지막에 flush와 close를 같이 호출했는데, 완전 삽질이었던것...

이제 flush를 따로안하기로했다.

'개발 일반' 카테고리의 다른 글

vscode 단축키 설정  (0) 2024.10.06
Git upstream 설정  (0) 2024.04.07
명명 규칙  (0) 2024.04.07