Java, как проверить наличие файла - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть этот маленький код

    File source;
    if ( !source.exists() ) {
        source = new File("instances/student"+student.getStudentID()+".data");
    }

Проблема в том, что источник не инициализирован. Поскольку весь смысл в том, чтобы проверить, существует ли он, как мне избежать этого?

Ответы [ 3 ]

7 голосов
/ 02 ноября 2011

Создание объекта File.

File source = new File(...);

Какой конструктор вы используете, зависит от того, как вы хотите найти файл. Простой путь String может быть достаточно.

РЕДАКТИРОВАТЬ: только что понял, что источником вашей путаницы может быть то, что вы думаете, что создание объекта File попытается найти файл или создать его в файловой системе. Это не тот случай. Простой вызов new File(...) не проверит его существование и не попытается его создать. Объект File - это просто абстракция для пути в вашей файловой системе. Это может быть и каталог.

1 голос
/ 02 ноября 2011

Вы можете сделать:

File f = new File(somepathhere);
if ( !f.exists() ) {
    f = new File("instances/student"+student.getStudentID()+".data");
}

Или вы можете проверить, если f.isFile ()

0 голосов
/ 03 ноября 2011

У вас, похоже, недоразумение Создание файла не создает файл в файловой системе. Объект File действительно только представляет имя файла. Если вы хотите увидеть, существует ли файл, создайте файл с соответствующим именем и отметьте exists().

Но тогда, если вы хотите перезаписать или добавить файл, вам даже не нужно все это. Просто создайте new FileOutputStream(...), с параметром append, установленным на true, если вы хотите добавить. Не нужно заранее проверять, ведь это больше, чем трата времени.

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