내 코드는 다음과 같습니다 문서에서Java에서 InputStream을 닫아야합니까?
InputStream confFile=classLoader.getResourceAsStream("myconffile.properties");
:
의 InputStream의 close 메소드는 아무것도하지 않습니다.
가까운 InputStream이 필요하지 않다는 의미입니까?
내 코드는 다음과 같습니다 문서에서Java에서 InputStream을 닫아야합니까?
InputStream confFile=classLoader.getResourceAsStream("myconffile.properties");
:
의 InputStream의 close 메소드는 아무것도하지 않습니다.
가까운 InputStream이 필요하지 않다는 의미입니까?
언급 한 메서드에서 반환 한 스트림이 실제로 파일의 핸들을 포함하는 FileInputStream 또는 InputStream
의 다른 하위 클래스이기 때문에 입력 스트림을 닫아야합니다. 이 스트림을 닫지 않으면 리소스가 누출됩니다.
아니요, InputStream
이 추상 클래스이기 때문에 getResourceAsStream()
은 close()
메서드가 수행하는 구체적인 하위 클래스를 반환합니다. 가장 중요한 것은 파일 핸들을 해제하는 것입니다.
대부분의 경우 FileInputStream이 될 것이라고 생각하지 않습니다. –
나는 유감스럽게도 현재 자바 인스턴스가 없다고 조사해야한다. 그러나, 나는 그것이 파일 핸들을 잡고 있다는 것에 동의한다. –
finalize() 메서드가 리소스 스트림을 닫지 않습니까? –