반응형
이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서
Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다.
#
InputStream, OutputStream, java.sql.Connection, java.io.Reader(FileReader, BufferedReader ...), java.new.Socket, java.util.Scanner 등이 close 해줘야 하는 resource 의 예이다.
이들은 Closeable interface 를 구현하였고, 이는 AutoCloseable 을 상속하였다.
#
이 Closable 들을 명시적으로 close 해주지 않아도 GC 에 의해 결국 정리가 되지만,
값비싼 resource 이기 때문에 가급적 빨리 close 를 불러주는 것이 권장된다.
그래서 기존에는 try-finally 를 통해 close 를 불러주는 idiom 을 사용했다.
#
보통 이런 reader 는 line-by-line 을 읽기도 해서, userLines 란 함수가 제공된다.
File(path).useLines{ lines ->
return lines.sumBy { it. length }
}
끝
반응형
'프로그래밍 놀이터 > Kotlin, Coroutine' 카테고리의 다른 글
[Effective Kotlin] Item 11 : Design for readability (0) | 2022.03.08 |
---|---|
[Effective Kotlin] Item 10 : Write unit tests (0) | 2022.03.07 |
[Effective Kotlin] Item 8 : Handle nulls properly (0) | 2022.03.05 |
[Effective Kotlin] Item 7 : Prefer null or Failure result when the lack of result is possible (0) | 2022.03.04 |
[Effective Kotlin] Item 6 : Prefer standard errors to custom ones (0) | 2022.03.03 |
댓글