FileNotFoundException, даже если файл там - PullRequest
1 голос
/ 01 июня 2011
public StormAnalysis(){
    try {       
        fScanner = new Scanner(new File("tracks1949to2010_epa.txt"));
        while(fScanner.hasNextLine()){
            System.out.println(fScanner.nextLine());
        }
    } catch (FileNotFoundException e) {
        System.out.println("File not found. Try placing the tracks1949to2010_epa.txt in the same folder as StormAnalysis.java");    
        e.printStackTrace();
    }

}

Выше приведен мой код (и у меня также есть изображение ошибки: http://folk.uio.no/arnabkd/test/images/error-code-task.jpg

Как видите, файл txt находится в той же папке, что и файл StormAnalysis.javaКроме того, код работает, если я изменю путь к файлу на «weather.dat» (который был задан как другая задача / проблема).

Любые идеи будут оценены по достоинству!

Ответы [ 3 ]

8 голосов
/ 01 июня 2011

Файл не существует. Если бы это было так, это не бросило бы исключение: -)

Вероятный виновник - рабочий каталог , отличный от ожидаемого (то есть текущий рабочий каталог не содержит файла с таким именем). Это можно легко проверить, используя абсолютный путь к файлу и следя за тем, чтобы он был загружен правильно.

В качестве альтернативы, чтобы найти текущий каталог:

String cwd = new File(".").getAbsolutePath();

Удачного кодирования.

2 голосов
/ 01 июня 2011

Eclipse копирует (только) файлы классов в каталог bin\classes по умолчанию (если только он не был изменен на другой каталог) перед запуском приложения Java.Практически этот каталог отличается от каталога src, в котором находится входной файл.Вам нужно будет настроить свойства сборки проекта в Eclipse, чтобы скопировать входной файл (или все файлы типа .txt) в выходной каталог.Это сделает файл доступным в том же каталоге, где находится файл класса, что позволит прочитать файл.

0 голосов
/ 31 мая 2018

Eclipse cwd - это папка Project, на один уровень выше bin и src.

Directory of ...eclipse-workspace\File IO
05/30/2018  07:52 PM    <DIR>          bin
05/30/2018  07:48 PM               148 sample.txt
05/30/2018  07:46 PM    <DIR>          src

testFile = new File("Sample.txt");
System.out.println(testFile.getAbsolutePath());
...