JavaRush /Blog Java /Random-PL /Pętla do próby złapania
dimaMJ
Poziom 25
Craiova

Pętla do próby złapania

Opublikowano w grupie Random-PL
Program jest prosty, użytkownik wprowadza nazwę pliku, jeśli taki plik istnieje, jest odczytywany itp., jeśli nie, uruchamiany jest wyjątek i użytkownik musi ponownie wprowadzić nazwę pliku, i tak dalej, aż nazwa pliku jest poprawne. Oto kod: 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; } } Przy uruchomieniu programu, gdy wprowadzę złą nazwę, wszystko działa, gdy wprowadzę poprawną, wyrzuca wyjątek w wątku „main” java.lang.NullPointerException, czyli z jakiegoś powodu zwraca null , co robię źle, może moje oczy są zamglone lub coś jest nie tak. Rozumiem, proszę, powiedz mi) Naprawdę chcę dowiedzieć się, jak poprawnie wykonać pętlę try-catch. Próbowałem bez osobnej metody, po prostu używając while, też nic dobrego nie wyszło)
A czy poprawnie określiłem typ zwracanej wartości?
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION