Программа простая, пользователь вводит имя файла, если такой файл есть то считывается и т.д., если нет то срабатывает исключение и пользователь должен ввести снова имя файла и так до тех пор пока имя файла не будет правильным. Вот код : 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; } } При запуске программы, когда ввожу не правильное имя все работает, когда ввожу правильное выдает Exception in thread "main" java.lang.NullPointerException то есть возвращает почему то null, что я не так делаю, может глаза запотели или что то не понимаю, подскажите пожалуйста ) Очень хочу разобраться, как правильно сделать цикл для try-catch. Пробовал без отдельного метода, просто через while,тоже ничего хорошего не вышло )
И правильно ли я указал тип возвращаемого значения ?