找不到符号类IOException

时间:2009-05-16 10:03:18

标签: java exception

public void populateNotesFromFile()
{
    try{
        BufferedReader reader = new BufferedReader(new FileReader(DEFAULT_NOTES_SAVED));
        String fileNotes = reader.readLine();

        while(fileNotes != null){
            notes.add(fileNotes);
            fileNotes = reader.readLine();
        }
        reader.close();
    }
    catch (IOException e){
        System.err.println("The desired file " + DEFAULT_NOTES_SAVED + " has problems being read from");
    }
    catch (FileNotFoundException e){
        System.err.println("Unable to open " + DEFAULT_NOTES_SAVED);
    }

    //make sure we have one note
    if (notes.size() == 0){
        notes.add("There are no notes stored in your note book");
    }       
}

每当我编译上面的内容时,我都会收到一条消息,说找不到符号类IOException e

有人可以告诉我如何解决它:d

感谢

5 个答案:

答案 0 :(得分:21)

IOException是java.io包中的一个类,因此为了使用它,您应该在代码中添加import声明。 import java.io.*;(在java文件的最顶部,在包名和类声明之间)

FileNotFoundException IOException。这是IOException的特化。一旦捕获到IOException,程序流将永远不会到达检查更具体的IOException的程度。只需交换这两个,先测试更具体的案例(FileNotFound)和然后处理(捕获)任何其他可能的IOExceptions。

答案 1 :(得分:3)

您可能缺少对import IOException的{​​{1}}引用。我位于class包中。

我可以建议你改变方法吗?始终在finally块中关闭流:

java.io

答案 2 :(得分:2)

你需要

import java.io;

位于文件顶部。

此外,FileNotFoundException需要高于IOException,因为它是IOException的子类。

答案 3 :(得分:0)

您需要在文件顶部导入java.io. *包,或者将异常完全限定为java.io.IOException

答案 4 :(得分:0)

切换FileNotFoundException和IOException的顺序