Closeable — 닫을 수 있는 데이터 소스 또는 대상
Closeable — 닫을 수 있는 데이터 소스 또는 대상
Closeable은 닫을 수 있는 데이터의 소스 또는 대상(source or destination of data)을 나타내는 인터페이스예요. close 메서드는 객체가 보유한 자원(예: 열린 파일)을 해제하기 위해 호출됩니다.
본문
이 인터페이스는 AutoCloseable을 확장하며, java.io 뿐 아니라 채널, 소켓, 셀렉터 등 수많은 입출력 클래스가 구현합니다. 예를 들어 BufferInputStream, FileInputStream, Reader, Writer, SocketChannel 등 거의 모든 스트림과 채널이 이 인터페이스를 구현해요.
메서드
void close() throws IOException— 이 스트림을 닫고 관련 시스템 자원을 해제해요. 스트림이 이미 닫혀 있다면 호출해도 아무 효과가 없어요.AutoCloseable.close()에 명시된 대로close가 실패할 수 있는 경우에는 주의가 필요하며,IOException을 던지기 전에 기반 자원을 포기하고Closeable을 내부적으로 닫힌 것으로 표시하는 것을 강력히 권장해요.IOException- I/O 오류가 발생한 경우.
Closeable.close()는 AutoCloseable의 close()보다 구체적인 계약을 가지며, IOException을 던지는 특성이 있어요. try-with-resources 구문에서 자동으로 close()가 호출되므로 명시적으로 닫는 것을 잊지 않아도 돼요.