Как я могу проверить, существует ли файл, прежде чем открывать его для чтения в Java (эквивалент Perl
-e $filename
)?
Единственный похожий вопрос на SO касается написания файла и, таким образом, получил ответ, используя FileWriter
который, очевидно, здесь не применим.
Если возможно, я бы предпочел, чтобы реальный вызов API возвращал значение true / false, а не какой-то «вызов API для открытия файла и перехвата, когда он выдает исключение, которое вы проверяете на отсутствие файла в тексте», но я могу жить с последний.
java
file-io
io
file-exists
DVK
источник
источник
canRead
,canWrite
и ,canExecute
чтобы проверить , что ,Ответы:
Использование
java.io.File
:источник
if(f.isFile())
вместо этого.Я бы порекомендовал использовать
isFile()
вместоexists()
. Большую часть времени вы пытаетесь проверить, указывает ли путь к файлу не только на то, что он существует. Помните, чтоexists()
вернет true, если ваш путь указывает на каталог.new File("C:/").exists()
вернет true, но не позволит вам открывать и читать из него как файл.источник
/path
, если указан правильный полный путь , ответ будет большим «нет» (если не существует другого файла ).new File("file.txt").exists()
true
/path/to/file.txt
/path/file.txt
Используя nio в Java SE 7,
Если оба
exists
иnotExists
возвращают false, существование файла не может быть проверено. (возможно нет права доступа к этому пути)Вы можете проверить,
path
является ли каталог или обычный файл.Пожалуйста, проверьте этот учебник Java SE 7 .
источник
java.nio.file.Files.exists()
это намного быстрее , чемjava.io.File.exists()
(из моего небольшого теста на единственном компьютере , я тестировал: Windows Server 2012 работает Java 1.7.0_45 x64).java.nio.file.Files.exists()
был в 5 раз МЕНЬШЕ, чемjava.io.File.exists
. (Win7 Java 1.7.0_79 - x86)Используя Java 8:
источник
Files.exists()
принимает два аргумента. Как правило, вы хотите что-то вродеFiles.exists(path, LinkOption.NOFOLLOW_LINKS )
.Это не создаст физический файл. Будет просто создать объект класса File. Чтобы физически создать файл, вы должны явно создать его:
Таким образом,
f.exists()
можно использовать, чтобы проверить, существует ли такой файл или нет.источник
источник
-e
также гарантирует, что приложение "может читать" файл?Есть несколько способов достичь этого.
В случае просто для существования. Это может быть файл или каталог.
Проверить файл
Проверьте каталог.
Java 7 способ.
источник
Вы можете использовать следующее:
File.exists()
источник
Первое совпадение для "Java-файла существует" в Google:
источник
String.valueOf()
, который обрабатывает нулиНе. Просто поймайте,
FileNotFoundException.
Файловая система должна проверить, существует ли файл в любом случае. Нет смысла делать все это дважды, и есть несколько причин этого не делать, например:Не пытайтесь угадать систему. Это знает. И не пытайтесь предсказать будущее. В общем, лучший способ проверить, доступен ли какой-либо ресурс, это просто попытаться использовать его.
источник
Для меня сочетание принятого ответа Шона А.О. Харни и полученного в результате комментария от Cort3z представляется наилучшим решением.
Использовал следующий фрагмент:
Надеюсь, это может кому-то помочь.
источник
Я знаю, что немного опоздал в этой теме. Тем не менее, вот мой ответ, действительный начиная с Java 7 и выше.
Следующий фрагмент
является совершенно логичным, потому что метод
isRegularFile
возвращает,false
если файл не существует. Поэтому не нужно проверять, еслиFiles.exists(...)
.Обратите внимание, что другие параметры являются параметрами, указывающими, как должны обрабатываться ссылки. По умолчанию идут символические ссылки.
Из документации Java Oracle
источник
Files.notExists
,Files.isDirectory
иFiles.isRegularFile.
лучшая альтернатива этому:path.toFile().exists()
Также стоит ознакомиться с Commons FileUtils https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html. Здесь есть дополнительные методы для управления файлами и часто лучше, чем JDK.
источник
Например, если у вас есть каталог с файлами, и вы хотите проверить, существует ли он
exists
вернет false если файл не существуетисточник: https://alvinalexander.com/java/java-file-exists-directory-exists
источник
Простой пример с хорошей практикой кодирования и охватывающий все случаи:
Ссылка и другие примеры на
https://zgrepcode.com/examples/java/java/nio/file/filealreadyexistsexception-implementations
источник
Если вы хотите проверить наличие
File
в каталогеdir
и проверь
check
результатисточник
сделает свое дело
источник
Не используйте конструктор файлов со строкой.
Это может не сработать!
Вместо этого используйте URI:
источник
File.exists()
чтобы проверить, существует ли файл, он вернет логическое значение, чтобы указать состояние операции проверки; истина, если файл существует; ложь, если не существует.источник
Вы можете использовать следующий код для проверки:
источник
Вы можете сделать это так
источник
File.is Exist()
илиFiles.isRegularFile()
в JDK 8Существует конкретная цель для разработки этих методов. Мы не можем сказать, использовать кого-либо, чтобы проверить, существует файл или нет.
источник
Чтобы проверить, существует ли файл, просто импортируйте библиотеку java.io. *
Источник: http://newsdivariotipo.altervista.org/java-come-controllare-se-un-file-esiste/
источник