2014-04-04 84 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