JavaRush /Java 博客 /Random-ZH /循环尝试捕获
dimaMJ
第 25 级
Craiova

循环尝试捕获

已在 Random-ZH 群组中发布
程序很简单,用户输入文件名,如果存在这样的文件,则读取等等,如果不存在,则触发异常,用户必须再次输入文件名,以此类推,直到文件名是正确的。代码如下: 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; } } 启动程序时,当我输入错误的名称时,一切正常,当我输入正确的名称时,它会在线程“main”java.lang.NullPointerException中抛出异常,也就是说,由于某种原因它返回null ,我做错了什么,也许我的眼睛被雾化了,或者我理解出了什么问题,请告诉我)我真的想弄清楚如何正确地创建一个 try-catch 循环。我尝试了没有单独的方法,只是使用 while,也没有什么好的结果)
并且我是否正确指定了返回值的类型?
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION