Сканер не может найти (правильный) путь к файлу - PullRequest
0 голосов
/ 27 января 2020

Я программирую в Java с IntelliJ и пытаюсь использовать класс Scanner для чтения файла. Даже при правильном пути я получаю сообщение об ошибке «Нет такого файла или каталога». У кого-нибудь есть предложения? Мой рабочий каталог / Users / kevinliu / Desktop / test Вот изображение того, как проект настроен.

Ответы [ 2 ]

0 голосов
/ 27 января 2020

Даже при правильном пути я получаю сообщение об ошибке «Нет такого файла или каталога».

Путь НЕ правильный. Этот путь говорит, что искать каталог с именем "sr c" в каталоге root вашего компьютера. Это почти наверняка не то место, где находится входной файл.

Если вы собираетесь использовать абсолютный путь к файлу в указанном вами рабочем каталоге, он должен выглядеть следующим образом:

  /Users/kevinliu/Desktop/test/src/input/input1.txt

(Вы можете проверить, что это будет на самом деле, используя файловый браузер ... за пределами Intellij.)

Если вы хотите использовать относительный путь, попробуйте это

  src/input/input1.txt

Примечания :

  1. В относительном пути нет начального символа "/". Ведущий «/» означает, что это абсолютный путь. Абсолютные пути start в каталоге root.

  2. Относительный путь разрешается относительно рабочего каталога >>current<<. Это будет зависеть от того, где и как вы запустите приложение ...

  3. Для производственного приложения вы не захотите ссылаться на файл в дереве исходного кода. Конечный пользователь, как правило, не имеет исходного дерева.

  4. Попробуйте сделать путь аргументом командной строки или параметром конфигурации для вашего приложения.

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

  6. Если вы когда-нибудь получите сообщение «Нет такого файла или каталога», это означает, что путь в некотором смысле неверен. Возможно, вы находитесь не в том месте, у вас может не быть разрешения на родительский каталог, возможно, файл был удален или переименован, возможно, вы или кто-то еще. В любом случае, эта ошибка происходит от операционной системы, и ОС не допускает ошибок в этих вещах. Ошибка будет за вами (или за пользователем).

0 голосов
/ 27 января 2020

Вы пытаетесь создать приложение Swing / Console, используя Maven? Если да, maven не может найти источник. Вы должны добавить его в файл POM. См. здесь о том, как добавить его в файл pom.

, если нет, имеете ли вы права доступа к адресу файла изображения? Иногда папка защищена ОС.

Вы также можете использовать YourClassName.class.getResource("input/input1.txt"), чтобы найти файл (ы) в каталоге, в котором находился ваш класс.

...