我正在尝试用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)
感谢您提供的任何帮助!
答案 0 :(得分:3)
就像错误所说,你也需要抓住IOException
。
由于FileNotFoundException
是IOException
的子类,因此除非要显示不同的错误消息,否则不需要明确捕获FileNotFoundException
。将其更改为:
catch (IOException e) {
System.out.println("File not read properly");
e.printStackTrace();
}
使用Java 7,可以在单个catch
块中捕获多个异常,如下所示,但在这种情况下没有必要,因为FileNotFoundException
是IOException
的子类
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