코틀린/Effective Kotlin
[Effective Kotlin] 9. 안정성 - use를 사용하여 리소스를 닫아라
코틀린에서는 close메서드를 통해 명시적으로 닫아줘야 하는 리소스들이 있습니다. InputStream, OutputStream java.sql.Connection java.io.Reader java.new.Socket, java.util.Scanner 이러한 리소스들은 AutoCloseable을 상속받는 Closeable인터페이스를 구현하고 있습니다. 이러한 모든 리소스는 최종적으로 리소스에 대한 레퍼런스가 없어질 때 가비지 컬렉터가 처리해 주지만, 느리며 그동안 리소스 유지비용이 많이 들어갑니다. 그렇기 때문에 위에서 말한 데로 명시적으로 리소스를 닫아줘야 합니다. try { return reader.lineSequence().sumBy {it.lentgh} } finally { reader.clos..