JavaRush /Java Blog /Random-JA /トライキャッチのループ
dimaMJ
レベル 25
Craiova

トライキャッチのループ

Random-JA グループに公開済み
プログラムは単純で、ユーザーがファイル名を入力し、そのようなファイルが存在する場合はファイルが読み取られます。存在しない場合は例外がトリガーされ、ユーザーはファイル名を再度入力する必要があり、ファイル名が見つかるまでこれを繰り返します。正しい。コードは次のとおりです。 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; } } プログラムを開始するときに、間違った名前を入力するとすべてが機能しますが、正しい名前を入力すると、スレッド「メイン」java.lang.NullPointerException で例外がスローされます。つまり、何らかの理由で null が返されます。 、何が間違っているのでしょうか、目が曇っているか、何かが間違っている可能性があります。理解しています、教えてください) Try-Catch ループを正しく作成する方法を本当に知りたいです。別のメソッドを使わずに while だけで試してみましたが、どちらも良い結果は得られませんでした)
そして、戻り値の型を正しく指定しましたか?
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION