Программа на java не находит файл по указанному пути

105
09 февраля 2022, 04:00

Не получается обратиться к файлу, который лежит не в папке проекта. Вот этот кусок кода выводит "File not found".

File settings = new File("C://Users//Admin//workspace//settings.txt");
        if(settings.exists())
            System.out.println("File exists");
        else
            System.out.println("File not found");
Answer 1

Прямой слеш не надо экранировать (причем экранирование делается обратным слешем), а вы просто задвоили прямой слеш. Так должно работать:

    File settings = new File("C:/Users/Admin/workspace/settings.txt");
    if(settings.exists())
        System.out.println("File exists");
    else
        System.out.println("File not found");

и так

    File settings = new File("C:\\Users\\Admin\\workspace\\settings.txt");
    if(settings.exists())
        System.out.println("File exists");
    else
        System.out.println("File not found");

Контруктор File(String) внутри вызывает нормализацию пути fs.normalize(pathname), где fs интерфейс FileSystem.

JVM знает что работает под Window, и использует реализацию WinNTFileSystem и соответствующий разделитель, который берет из свойства JVM "file.separator".

Поэтому должны работать оба варианта

READ ALSO
Ошибка при сравнении объектов

Ошибка при сравнении объектов

При тестировании проверяются два методаВ первом мы сравниваем аналогичные объекты из списка, один из которых получен из класса DAOImpl, а другой...

98
Java FX инициализация полей

Java FX инициализация полей

Пишу свое первое приложение на JavaFX - чатСтолкнулся с проблемой обновления данных в компоненте сцены JavaFX - textArea

76
Время конкретного пользователя в Java

Время конкретного пользователя в Java

В коде имеется сервис, который разрешает/отклоняет HTTP запрос в зависимости от времени (до 11:00 разрешено, после - запрещено)На текущий момент...

102