JavaRush /Java Blog /Random-KO /Try-Catch를 위한 루프
dimaMJ
레벨 25
Craiova

Try-Catch를 위한 루프

Random-KO 그룹에 게시되었습니다
프로그램은 간단합니다. 사용자는 파일 이름을 입력하고, 해당 파일이 존재하면 읽습니다. 그렇지 않으면 예외가 발생하고 사용자는 파일 이름을 다시 입력해야 합니다. 이런 식으로 파일 이름이 나올 때까지 계속됩니다. 맞다. 코드는 다음과 같습니다. public class Solution { public static void main(String[] args) throws Exception { InputStream inStream = filego(); OutputStream outStream = new PrintStream(System.out); while(inStream.available()>0) { int data = inStream.read(); outStream.write(data); } inStream.close(); outStream.close(); } public static InputStream filego() throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String FileName = reader.readLine(); InputStream inStream = null ; try { inStream = new FileInputStream(FileName); } catch (Exception e) { System.out.println("Файл не найден, введите еще раз"); filego(); } return inStream; } } 프로그램을 시작할 때 잘못된 이름을 입력하면 모든 것이 작동합니다. 올바른 이름을 입력하면 "main" java.lang.NullPointerException 스레드에서 예외가 발생합니다. 즉, 어떤 이유로 null을 반환합니다. , 내가 뭘 잘못하고 있는 걸까요, 눈이 흐려졌거나 뭔가 잘못되었을 수도 있습니다. 이해합니다. 알려주세요.) try-catch 루프를 올바르게 만드는 방법을 정말로 알고 싶습니다. 별도의 방법 없이 while만 사용해 보았는데 역시 좋은 결과가 나오지 않네요.)
그리고 반환 값의 종류를 제대로 지정했나요?
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION