Pourquoi devons-nous vérifier si un fichier "existe ?"
Lors de la gestion des opérations sur les fichiers (lecture/écriture/création/suppression/mise à jour, etc.), de nombreux débutants peuvent se demander pourquoi avons-nous même besoin de vérifier si un fichier existe ? La réponse appropriée à cela serait, afin d'éviter NoSuchFileException , c'est toujours un moyen plus sûr d'accéder à un fichier. Par conséquent, vous devez vérifier si un fichier existe avant d'y accéder pour éviter toute exception d'exécution.
Comment vérifier en utilisant la méthode file.exists() ?
Java fournit une méthode booléenne simple, file.exists() qui ne nécessite aucun paramètre pour vérifier le fichier concerné sur un chemin donné. Lors de la vérification de l'existence d'un fichier, gardez 3 scénarios à l'étude.- Le fichier est trouvé.
- Le fichier est introuvable.
- L'état du fichier est inconnu si les autorisations ne sont pas accordées (pour des raisons de sécurité).
Exemple
Examinons un exemple de code simple pour voir l'implémentation.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());
}
}
Sortir
Le fichier existe-t-il dans "C:\Users\Lubaina\Documents\myNewTestFile.txt" ? true Le fichier existe-t-il dans "C:\Users\Lubaina\Documents\myOtherTestFile.txt" ? FAUX
Veuillez noter que la méthode file.exists() fonctionne également pour les chemins de " répertoire ". Si vous vérifiez un chemin de répertoire valide avec cette méthode, il retournera true ou false sinon. Pour une meilleure compréhension, vous pouvez consulter le bloc de code suivant.
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);
}
}
Sortir
Le répertoire "C:\Users\Lubaina\Documents\javaContent" existe. La ressource "C:\Users\Lubaina\Documents\javaContent" est-elle un fichier ? false La ressource « C:\Users\Lubaina\Documents\myNewTestFile.txt » est-elle un fichier ? vrai
Comme vous pouvez le voir sur la sortie, le répertoire nommé "javaContent" a été validé par la méthode exists() . Ainsi, si vous souhaitez spécifiquement vérifier qu'un fichier n'est pas un répertoire, vous pouvez utiliser la méthode booléenne isDirectory() fournie par la classe File en Java. Conclusion
À la fin de cet article, vous devez savoir comment vérifier si un fichier existe en Java. Vous pouvez écrire vos propres programmes pour tester et comprendre cette fonctionnalité. Une fois que vous êtes à l'aise avec cela, vous pouvez également explorer d'autres moyens de vérifier la présence d'un fichier (par exemple, en utilisant des liens symboliques ou une classe nio). Bonne chance et bon codage ! :)
Plus de lecture : |
---|
GO TO FULL VERSION