尝试读取文件时出错

时间:2014-05-20 08:38:52

标签: java eclipse

我正在尝试用Java读取文件,但是我收到了一个错误。有谁知道解决这个问题吗?

我的代码:

import java.io.*;
public class datafile{ static void readFile(){
    try {
        BufferedReader bReader = new BufferedReader(new FileReader("itemslist.dat"));
        String row;
        String column1;
        String column2;
        String column3;
        while((row = bReader.readLine()) != null){
            String[] itemWord = row.split("\t");
            column1 = itemWord[0];
            column2 = itemWord[1];
            column3 = itemWord[2];
        }
    } catch (FileNotFoundException e) {
        System.out.println("File not read properly");
        }
}
}    

我正在尝试阅读的文件格式为:

食物煮熟400

其中空格为TABS。

这是我收到的错误消息:

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem: Unhandled exception type IOException
at datafile.readFile(datafile.java:12)

感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:3)

就像错误所说,你也需要抓住IOException

由于FileNotFoundExceptionIOException的子类,因此除非要显示不同的错误消息,否则不需要明确捕获FileNotFoundException。将其更改为:

catch (IOException e) {
   System.out.println("File not read properly");
   e.printStackTrace();
}

使用Java 7,可以在单个catch块中捕获多个异常,如下所示,但在这种情况下没有必要,因为FileNotFoundExceptionIOException的子类

catch (FileNotFoundException | IOException e) {
   e.printStackTrace();
}

答案 1 :(得分:0)

添加此

catch (FileNotFoundException e) {
    System.out.println("File not read properly");
 }catch(IOException e){
     System.out.println("input output problem");
 }

目前,您的代码只处理FileNotFoundException,代码可以抛出您需要处理的IOException