не удается найти класс символов IOException - PullRequest
7 голосов
/ 16 мая 2009
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 ]

21 голосов
/ 16 мая 2009

IOException - это класс из пакета java.io, поэтому для его использования необходимо добавить объявление import в свой код. import java.io.*; (в самом верху java-файла, между именем пакета и объявлением вашего класса)

FileNotFoundException является IOException. Это специализация IOException. Как только вы поймали IOException, поток программы никогда не доберется до точки проверки для более конкретного IOException. Просто поменяйте местами эти два, чтобы сначала проверить для более конкретного случая (FileNotFound) и , а затем обработать (перехватить) любые другие возможные исключения IOException.

3 голосов
/ 16 мая 2009

Возможно, вам не хватает ссылки import на IOException class. Я нахожусь в пакете java.io.

Могу ли я предложить небольшое изменение в вашем методе? Всегда закрывайте поток в блоке finally:

public void populateNotesFromFile() {
    BufferedReader reader = null;
    try {
        reader = new BufferedReader(new FileReader(DEFAULT_NOTES_SAVED));
        String fileNotes = reader.readLine();
        while (fileNotes != null) {
            notes.add(fileNotes);
            fileNotes = reader.readLine();
        }
    } catch (FileNotFoundException e) {
        System.err.println("Unable to open " + DEFAULT_NOTES_SAVED);
    } catch (IOException e) {
        System.err.println("The desired file " + DEFAULT_NOTES_SAVED
                + " has problems being read from");
    } finally {
        try {
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // make sure we have one note
    if (notes.size() == 0) {
        notes.add("There are no notes stored in your note book");
    }
}
2 голосов
/ 16 мая 2009

Вам нужно

import java.io;

вверху вашего файла.

Кроме того, FileNotFoundException должно быть выше IOException, поскольку это подкласс IOException.

0 голосов
/ 16 мая 2009

Переключение порядка FileNotFoundException и IOException

0 голосов
/ 16 мая 2009

Вам необходимо либо импортировать пакет java.io. * вверху файла, либо полностью квалифицировать исключение как java.io.IOException

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...