본문 바로가기
Java

[Java][AutoCloseable] 파일 I/O에 유용한 코드 및 개념 정리

by Lee David 2022. 10. 20.
반응형
AutoCloseable

java에서는 파일을 읽어 들이기 위해 먼저 메모리에 파일의 바이너리를 등록 하게 됩니다.

그후 파일의 입출력을 담당하는 InputStream/OutputStream 등을 사용하고 메모리 누수(Memory Leak)를 막기 위해 우리는 close 함수를 주로 사용하게 됩니다.

해당 함수를 사용해서 닫아주는게 default 이지만 간혹 깜빡하고 넘어가는 순간 서버에서는 메모리가 차곡차곡 쌓여 결국 프로세스가 죽는 경험을 해보신 분들 많으실 겁니다.

그래서 java 에서는 IO 이후에 자동으로 파일을 닫아주는 interface를 java 7 버전 이후 부터 기용하게 되었습니다.

try(InputStream input = new InputStream) {
    ...
} catch (Exception e) {
    ...
}

이렇게 try 구문이 시작할때에 소괄호를 열고 Stream 객체를 생성한 후 코드를 짜기 시작하면 우리가 염려하는 close를 java에서 자동으로 실행해 주어 간단한 실수 등을 막아줄수 있습니다.

이 구문을 사용하는데 모든 객체에서 사용이 가능한것은 아니고 AutoCloseable interface를 상속한 객체에 한하여 가능하니 참고하시기 바랍니다.

AutoCloseable을 상속한 java 기본 class 예시

반응형

'Java' 카테고리의 다른 글

java #5 [Stack]  (0) 2022.11.02
[자료구조] Priority Queue는 뭔가요?  (0) 2022.08.18
java #4 [Queue, Dequeue]  (0) 2020.07.08
java #3 [ArrayList, LinkedList, SynchronizedList]  (0) 2020.07.06
Java #3 [InputStream]  (0) 2020.06.29