Closeable — 닫을 수 있는 데이터 소스 또는 대상

Closeable — 닫을 수 있는 데이터 소스 또는 대상

Closeable은 닫을 수 있는 데이터의 소스 또는 대상(source or destination of data)을 나타내는 인터페이스예요. close 메서드는 객체가 보유한 자원(예: 열린 파일)을 해제하기 위해 호출됩니다.

출처: Java API Reference

본문

이 인터페이스는 AutoCloseable을 확장하며, java.io 뿐 아니라 채널, 소켓, 셀렉터 등 수많은 입출력 클래스가 구현합니다. 예를 들어 BufferInputStream, FileInputStream, Reader, Writer, SocketChannel 등 거의 모든 스트림과 채널이 이 인터페이스를 구현해요.

메서드

  • void close() throws IOException — 이 스트림을 닫고 관련 시스템 자원을 해제해요. 스트림이 이미 닫혀 있다면 호출해도 아무 효과가 없어요. AutoCloseable.close()에 명시된 대로 close가 실패할 수 있는 경우에는 주의가 필요하며, IOException을 던지기 전에 기반 자원을 포기하고 Closeable을 내부적으로 닫힌 것으로 표시하는 것을 강력히 권장해요. IOException - I/O 오류가 발생한 경우.

Closeable.close()AutoCloseableclose()보다 구체적인 계약을 가지며, IOException을 던지는 특성이 있어요. try-with-resources 구문에서 자동으로 close()가 호출되므로 명시적으로 닫는 것을 잊지 않아도 돼요.

더 알아보기 (Learn more)