Программа простая, пользователь вводит имя файла, если такой файл есть то считывается и т.д., если нет то срабатывает исключение и пользователь должен ввести снова имя файла и так до тех пор пока имя файла не будет правильным. Вот код :
И правильно ли я указал тип возвращаемого значения ?
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,тоже ничего хорошего не вышло )И правильно ли я указал тип возвращаемого значения ?
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ