O programa é simples, o usuário insere o nome do arquivo, se tal arquivo existir, ele é lido, etc., caso contrário, uma exceção é acionada e o usuário deve inserir o nome do arquivo novamente, e assim sucessivamente até o nome do arquivo está correto. Aqui está o código:
E especifiquei o tipo do valor de retorno corretamente?
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; } }
Ao iniciar o programa, quando eu digito o nome errado, tudo funciona, quando eu digito o correto, ele lança Exception na thread "main" java.lang.NullPointerException, ou seja, por algum motivo ele retorna null , o que estou fazendo de errado, talvez meus olhos estejam embaçados ou algo esteja errado, eu entendo, por favor me diga) Eu realmente quero descobrir como fazer um loop try-catch corretamente. Tentei sem um método separado, apenas usando while, também não deu nada de bom)
E especifiquei o tipo do valor de retorno corretamente?
GO TO FULL VERSION