#java #java.util.scanner #filenotfoundexception
#java #java.util.scanner #исключение filenotfoundexception
Вопрос:
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
Как вы можете видеть, текстовый файл находится в той же папке, что и StormAnalysis.java файл. Кроме того, код работает, если я изменяю путь к файлу на «weather.dat» (который был указан как другая задача / проблема).
Любые идеи будут оценены!
Ответ №1:
Файла там нет. Если бы это было так, это не вызвало бы исключения 🙂
Вероятным виновником является то, что рабочий каталог отличается от ожидаемого (то есть текущий рабочий каталог не содержит файл с таким именем). Это можно тривиально проверить, используя абсолютный путь к файлу и убедившись, что он загружен правильно.
В качестве альтернативы, чтобы найти текущий каталог:
String cwd = new File(".").getAbsolutePath();
Удачного кодирования.
Комментарии:
1. @Arnab, поскольку вы используете относительный путь к
File
конструктору, вычисляемый путь всегда будет относиться к рабочему каталогу исполняемого файла java / javaw. Вам нужно будет изменить вызов конструктора, чтобы включить любые подкаталоги, в которых присутствует ваш файл.
Ответ №2:
Eclipse копирует (только) файлы класса в binclasses
каталог по умолчанию (если это не было изменено на другой каталог), перед запуском приложения Java. Для всех практических целей этот каталог отличается от src
каталога, в котором присутствует входной файл. Вам нужно будет настроить свойства сборки проекта в Eclipse, чтобы скопировать входной файл (или все файлы типа .txt) также в выходной каталог. Это сделает файл доступным в том же каталоге, где находится файл класса, что позволит прочитать файл.
Ответ №3:
Eclipse cwd — это папка проекта, расположенная на один уровень выше bin и src.
Directory of ...eclipse-workspaceFile 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());