JavaRush /Blog Java /Random-FR /Boucle pour essayer-attraper
dimaMJ
Niveau 25
Craiova

Boucle pour essayer-attraper

Publié dans le groupe Random-FR
Le programme est simple, l'utilisateur saisit le nom du fichier, si un tel fichier existe, il est lu, etc., sinon, alors une exception est déclenchée et l'utilisateur doit saisir à nouveau le nom du fichier, et ainsi de suite jusqu'à ce que le nom du fichier est correct. Voici le code : 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; } } Au démarrage du programme, lorsque j'entre un mauvais nom, tout fonctionne, lorsque j'entre le bon, il lève une exception dans le thread "main" java.lang.NullPointerException, c'est-à-dire que pour une raison quelconque, il renvoie null , qu'est-ce que je fais de mal, peut-être que mes yeux sont embués ou que quelque chose ne va pas, je comprends, dites-moi s'il vous plaît) Je veux vraiment comprendre comment faire correctement une boucle try-catch. Je l'ai essayé sans méthode séparée, en utilisant simplement while, rien de bon n'est sorti non plus)
Et ai-je correctement spécifié le type de valeur de retour ?
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION