> Java > java지도 시간 > System.in에 연결된 스캐너를 닫아야 합니까?

System.in에 연결된 스캐너를 닫아야 합니까?

Linda Hamilton
풀어 주다: 2024-12-20 18:27:20
원래의
910명이 탐색했습니다.

Should I Close a Scanner Linked to System.in?

System.in에 연결된 스캐너 닫기

System.in에 연결된 스캐너를 닫는 것은 어려울 수 있습니다. 열려 있는 리소스를 닫는 것이 좋은 코딩 방법이지만 System.in에 연결된 스캐너를 사용하여 그렇게 하면 System.in 자체도 닫힙니다. System.in에 영향을 주지 않고 스캐너를 닫을 수 있는 방법이 있습니까?

해결책

가장 간단한 해결책은 다음과 같은 경우 스캐너를 닫지 않는 것입니다. 기본 스트림을 닫을 생각이 없습니다. 대부분의 경우 전체 프로그램을 제공하는 단일 스캐너를 만드는 것이 좋습니다. 이렇게 하면 반복적으로 만들고 닫을 필요가 없습니다.

어떤 이유로 Scanner를 닫아야 하는 경우 한 가지 옵션은 동일한 기본 스트림을 사용하여 새 Scanner 인스턴스를 만드는 것입니다. 이렇게 하면 두 엔터티가 분리되고 System.in에 영향을 주지 않고 검사기를 닫을 수 있습니다.

예는 다음과 같습니다.

Scanner scanner = new Scanner(System.in);
// Use the scanner as needed...

// Create a new scanner with the same underlying stream.
Scanner newScanner = new Scanner(System.in);

// Close the first scanner.
scanner.close();

// Continue using the new scanner.
newScanner.nextInt();

// Close the second scanner.
newScanner.close();
로그인 후 복사

이 방법을 사용하면 System.in이 영향을 받지 않는 동시에 다음을 수행할 수 있습니다. 원본 Scanner를 닫습니다.

여러 Scanner 인스턴스를 생성하면 성능에 영향을 미칠 수 있다는 점에 유의하는 것이 중요합니다. 성능이 중요하다면 프로그램 전체 기간 동안 단일 스캐너를 사용하는 것이 가장 좋습니다.

위 내용은 System.in에 연결된 스캐너를 닫아야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿