Защо трябва да проверяваме дали даден файл „съществува?“
Докато се занимават с файлови операции (четене/запис/създаване/изтриване/актуализиране и т.н.), много начинаещи могат да се чудят защо изобщо трябва да проверяваме дали даден файл съществува? Подходящият отговор на това би бил, за да се избегне NoSuchFileException , винаги е по-безопасен начин за достъп до файл. Следователно, трябва да проверите дали даден файл съществува, преди да получите достъп до него, за да избегнете изключения по време на изпълнение.Как да проверя с помощта на метода file.exists()?
Java предоставя прост булев метод, file.exists() , който не изисква ниHowви параметри за проверка на съответния файл по даден път. Когато проверявате за съществуването на файл, вземете под внимание 3 сценария.- Файлът е намерен.
- Файлът не е намерен.
- Състоянието на file е неизвестно, ако не са дадени разрешения (поради съображения за сигурност).
Пример
Нека да разгледаме прост пример на code, за да видим изпълнението.
package com.java.exists;
import java.io.File;
public class ExistsMethodInJava {
public static void main(String[] args) {
String filePath = "C:\\Users\\Lubaina\\Documents\\myNewTestFile.txt";
File file = new File(filePath);
// check if the file exists at the file path
System.out.println("Does File exists at \"" + filePath + "\"?\t" + file.exists());
filePath = "C:\\Users\\Lubaina\\Documents\\myOtherTestFile.txt";
File nextFile = new File(filePath);
// check if the file exists at the file path
System.out.println("Does File exists at \"" + filePath + "\"?\t" + nextFile.exists());
}
}
Изход
Файлът съществува ли в "C:\Users\Lubaina\Documents\myNewTestFile.txt"? вярно Файлът съществува ли в "C:\Users\Lubaina\Documents\myOtherTestFile.txt"? невярно
Моля, имайте предвид, че методът file.exists() също работи за пътеки „ директория “. Ако проверите валиден път на директория с този метод, той ще върне true or в противен случай false. За по-добро разбиране можете да разгледате следния блок от code.
package com.java.exists;
import java.io.File;
public class CheckFileExists {
// check if the "file" resource exists and not "directory"
public static boolean checkFileExists(File file) {
return file.exists() && !file.isDirectory();
}
public static void main(String[] args) {
String directoryPath = "C:\\Users\\Lubaina\\Documents\\javaContent";
File direcotry = new File(directoryPath);
// check if the directory exists at the dir path
if (direcotry.exists()) {
System.out.println("Direcotry at \"" + directoryPath + "\" exists.\n");
} else {
System.out.println("Direcotry at \"" + directoryPath + "\" does not exist.\n");
}
// check if the resource present at the path is a "file" not "directory"
boolean check = checkFileExists(direcotry);
System.out.println("Is the resource \"" + direcotry + "\" a File? " + check);
String filePath = "C:\\Users\\Lubaina\\Documents\\myNewTestFile.txt";
File file = new File(filePath);
check = checkFileExists(file);
System.out.println("Is the resource \"" + file + "\" a File? " + check);
}
}
Изход
Съществува директория в "C:\Users\Lubaina\Documents\javaContent". Ресурсът "C:\Users\Lubaina\Documents\javaContent" файл ли е? false Ресурсът "C:\Users\Lubaina\Documents\myNewTestFile.txt" файл ли е? вярно
Както можете да видите от изхода, директорията с име „javaContent“ е валидирана от метода exists() . Така че, ако конкретно искате да проверите дали даден файл не е директория, можете да използвате булевия метод isDirectory() , предоставен от класа File в Java.
Заключение
До края на тази публикация трябва да сте запознати с това How да проверите дали даден файл съществува в Java. Можете да напишете свои собствени програми, за да тествате и разберете тази функционалност. След като се почувствате добре с това, можете да проучите и други начини за проверка на наличието на файл (напр. използване на символни връзки or nio клас). Успех и приятно codeиране! :)
Още четене: |
---|
GO TO FULL VERSION