2014-04-04 80 views
0

道歉提前如果這是一個愚蠢的問題,但我已經創建了一個菜單欄和兩個的菜單項的窗口....當我點擊打開我想用JFileChooser,以選擇從我的計算機中的文件,但有沒有發現錯誤在我的掃描儀輸入的Java JFileChooser的的JMenuItem

public void actionPerformed(ActionEvent e) { 
    JFileChooser chooser = new JFileChooser(); 
    FileNameExtensionFilter filter = new FileNameExtensionFilter("text files", "txt"); 
    chooser.setFileFilter(filter); 
    if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
     //get the selected file 
     java.io.File file = chooser.getSelectedFile(); 
     //create scanner for the file 
     Scanner input = new Scanner(file); 
     //read text from file 
     while (input.hasNext()) { 
      System.out.println(input.nextLine()); 
     } 
     //close the file 
     input.close(); 
    } else { 
     System.out.println("No file selected"); 
    } 
} 

未處理的異常類型的文件,我知道我應該進入一個拋出異常但沒有我的方法將它....我的主要方法拋出IOException了。在此先感謝

+0

是您對'FileNotFound'例外本身,或有關如何修改代碼,一般處理這種異常的問題? – azurefrog

+0

我想知道在哪裏把FileNotFound異常,因爲我提出的任何方法,它提出了一個錯誤信息 – mgibb

回答

0

如果你不想拋出異常,則需要圍繞它產生一個try-catch塊的代碼,並在本地處理異常這樣的:

if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
     //get the selected file 
     java.io.File file = chooser.getSelectedFile(); 
     try { 
      //create scanner for the file 
      Scanner input = new Scanner(file); 
      //read text from file 
      while (input.hasNext()) { 
       System.out.println(input.nextLine()); 
      } 
      //close the file 
      input.close(); 
     } catch (FileNotFoundException fnfe) { 
      // handle exception here, e.g. error message to the user 
     } 
    } else { 
     System.out.println("No file selected"); 
    } 
+0

感謝,這正是我想要的! – mgibb

+0

我會更好地確保資源,關閉finally塊掃描儀,也不管是什麼happended – MadProgrammer

+0

'新的掃描儀(文件)'是什麼引發了'FileNotFoundException',所以在這種情況下,還會有什麼被關閉關閉。 – azurefrog