Java File.exists () против File.isFile ()
Я не могу придумать реалистичный вариант использования методаjava.io.File.exists()
или его эквивалент в Java 7java.nio.file.Files.exists(Path)
, Кажется, чтоisFile()
или жеisDirectory()
будет предпочтительнее во всех случаях (илиcanRead()
, canWrite()
, и т.д.).
Например, вКак проверить, существует ли файл в Java?принятый ответ кажется глупым, как указывает второй ответ.
Может ли кто-нибудь привести пример, когда полезно знать, что вещь существует,без зная, является ли вещь файлом или каталогом?
РЕДАКТИРОВАТЬ: я понимаю, чтоFile.exists()
делает. Мой вопроскогда эта функциональность когда-нибудь поможет кому-то? Я ищу пример, как, "ИспользованиеFile.exists()
когда _ _ _ _ _ _, потому что ниFile.isFile()
ниFile.isDirectory()
добавить любое значение в этом случае. "
Оглядываясь назад, я думаю, что мое замешательство было связано с двумя, казалось бы, противоречивыми утверждениями в JavaDocFile
класс. Первое предложение определяет класс как,
Абстрактное представление имен файлов и каталогов.
Это звучит как четкая дихотомия; но дальше, док возражает против этого,
Экземпляры этого класса могут обозначать или не обозначать фактический объект файловой системы, такой как файл или каталог.
Я думаю, что пример третьего объекта файловой системы очень помог бы в документации; но этой категории, кажется, не хватает даже названия, что приводит к неловкому выражению JavaDoc дляFiles
класс: коллекция статических методов,
которые работают с файлами, каталогами или другими типами файлов.
В принятом ответе @koral называет эти другие типы «специальными файлами». Это кажется мне подходящим. Они такие особенные, я не знал, что они существуют.