程式很簡單,用戶輸入文件名,如果存在這樣的文件,則讀取等等,如果不存在,則觸發異常,用戶必須再次輸入文件名,以此類推,直到文件名是正確的。程式碼如下:
並且我是否正確指定了返回值的類型?
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,也沒有什麼好的結果)
並且我是否正確指定了返回值的類型?
GO TO FULL VERSION