자바 Scanner close 오류

오서영·2022년 4월 20일
post-thumbnail

🏷️내 문제점

import java.util.Scanner;를 해서 Scanner를 사용하고 마지막에 scanner.close();로 반납을 하려 했다. 어떤 경우에는 이게 오류 없이 넘어가고, 어떤 경우에는 오류가 떴다.

오류가 떴던 경우

nextLine()이나 next()를 사용해 문자열을 입력받는데 scanner를 이용한 경우

오류가 뜨지 않은 경우

위의 경우를 제외하고 nextInt() 등 정수를 입력받는데 사용한 경우 등

🏷️해결방법

내 문제점

scanner.close();를 아예 main 메서드의 마지막에서 했었다.

해결방법

stackoverflow에서 해결책을 발견했다. scanner를 main 메서드에서가 아닌, 처음 정의한 메서드에서 닫으라는 것이었다!

실제로 그렇게 해보니 오류가 더 이상 뜨지 않고 실행이 잘 되었다.

해결되지 않은 문제

처음 정의한 메서드가 while()문인 경우, scanner를 close 해버리니 2번째 실행부터 다시 에러가 떴다...

그래서 그냥 scanner.close()를 없앴더니 깔끔하게 실행되었다.

profile
개발과 보안에 관심 있는 대학생입니다😎

0개의 댓글