Maison > Java > javaDidacticiel > le corps du texte

Java FileNotFoundException

WBOY
Libérer: 2024-08-30 16:14:52
original
1059 Les gens l'ont consulté

Java FileNotFoundException est un type d'exception qui se produit souvent lors de l'utilisation des API de fichiers en Java où le chemin spécifié pour un fichier à des fins de lecture ou d'écriture dans le constructeur des classes FileInputStream, FileOutputStream et RandomAccessFile n'existe pas ou est inaccessible. en raison d'un verrou existant ou d'autres problèmes techniques. Il s'agit d'une exception vérifiée, une sous-classe directe de IOException qui a été introduite avec le JDK 1.0. En outre, il contient deux types de constructeurs qui peuvent être appelés, l'un renvoyant une exception avec un message nul à afficher, tandis que l'autre imprime le message spécifié au cas où l'exception se produirait.

PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Syntaxe :

public class FileNotFoundExceptionextends IOException
Copier après la connexion
  • public : Le mot-clé public fait référence au fait que la classe donnée est accessible à partir de n'importe quelle classe du projet et doit être héritée pour lever une exception.

Cette classe est une sous-classe directe de IOException, héritant ainsi de toutes les méthodes et variables de la classe.

Comment FileNotFoundException fonctionne-t-il en Java ?

FileNotFoundException est une exception vérifiée utilisée qui se produit lorsqu'un chemin de fichier spécifié pour l'accès n'existe pas ou est inaccessible. Avec l'exception vérifiée, cela signifie que le compilateur Java vérifie au moment de la compilation si cette exception a été gérée ou non ; sinon, une erreur de compilation se produit. Voyons comment l'exception est levée au moment de l'exécution au cas où elle aurait été gérée à l'aide de blocs try-catch ou en utilisant le mot-clé throws dans sa définition au moment du compilateur.

Exemple :

File fileObj = new File("C:/JavaPractice.txt")
Copier après la connexion

Supposons que nous instancions un objet de classe File comme indiqué ci-dessus avec le chemin d'un fichier et que ce fichier n'existe pas. Dans ce cas, lorsque le compilateur tente de lire ou d'écrire le fichier et trouve une telle situation, il lève une exception et crée une instance de la classe FileNotFoundException. Dans le cas où il n'est pas spécifié quel constructeur doit être appelé, le constructeur sans message d'erreur est renvoyé.

Ainsi, l'application échoue avec l'erreur ci-dessous :

Java FileNotFoundException

Constructeurs de Java FileNotFoundException

FileNotFoundException est une sous-classe de IOException qui est très utile pour savoir si le fichier spécifié dans le chemin du fichier existe et même accessible. Ainsi, pour l'utiliser, il faut l'instancier, et c'est une classe publique ; il peut être instancié à partir de n'importe où dans le projet. Et pour créer l'instance de la classe dispose de 2 types de constructeurs.

Vous trouverez ci-dessous les deux types de constructeurs :

1. Constructeur sans message d'erreur

Ce type de constructeur est utilisé pour créer une instance de la classe FileNotFoundException où il renvoie null comme message détaillé d'erreur.

Syntaxe :

public FileNotFoundException()
Copier après la connexion

Exemple :

FileNotFoundExceptionexcepObj = new FileNotFoundException()
Copier après la connexion

2. Constructeur avec un message d'erreur

Ce type de constructeur est utilisé pour créer une instance de la classe FileNotFoundException où il renvoie une chaîne spécifiée comme message détaillé d'erreur.

Syntaxe :

public FileNotFoundException(String s)
Copier après la connexion

Exemple :

FileNotFoundExceptionexcepObj = new FileNotFoundException("This is a FileNotFoundException")
Copier après la connexion

Le message d'erreur spécifié peut être facilement récupéré à l'aide de la méthode Throwable.getMessage() puisqu'il s'agit de l'une des superclasses de la classe FileNotFoundException.

Exemples d'exception Java FileNotFoundException

Vous trouverez ci-dessous les exemples mentionnés :

Exemple n°1

Nous voyons ici comment une exception est levée par JVM si un fichier est inaccessible. En cela, le message d'erreur affiché en sortie est celui spécifié par défaut par JVM.

Code :

//package Proc;
import java.io.Console;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
public class prac1 {
public static void main(String[] args) {
File fileObj = new File("D:/JavaPractice.txt");
FileInputStream fISObj = null;
try{
fISObj = new FileInputStream(fileObj);
while (fISObj.read()!=-1){
System.out.println(fISObj.read());
}
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
}
}
Copier après la connexion

Sortie :

Java FileNotFoundException

Exemple n°2

Dans cet exemple, nous utiliserons le constructeur avec un message d'erreur spécifié pour afficher l'erreur lorsque le fichier n'existe pas au chemin donné. Nous avons utilisé le mot-clé throw pour lever l'exception.

Code :

//package Proc;
import java.io.Console;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
public class prac1 {
public static void main(String[] args) throws FileNotFoundException,IOException{
File fileObj = new File("D:/JavaPractice.txt");
if(!fileObj.exists()){
throw new FileNotFoundException("This file doesnot exist in the path specified "+fileObj.toString());
}
else {
System.out.println("Welcome, we got into file "+fileObj.toString());
}
}
}
Copier après la connexion

Sortie :

Java FileNotFoundException

Comment éviter FileNotFoundException ?

Obtenir une FileNotFoundException dans une application rend une application inefficace. La première étape pour éviter cette exception consiste à vérifier si le fichier spécifié existe au chemin spécifié, mais il peut néanmoins se produire une situation dans les applications en temps réel où le fichier est manquant ou si d'autres processus verrouillent le fichier pour qu'il soit lu. écrivez-y.

Cas 1 : Le fichier est manquant

Pour éviter cela, on peut utiliser la méthode java.io.File.exists() pour vérifier si le fichier que l'on tente de lire existe ou non sur le chemin spécifié. En utilisant cela, nous devons nous assurer que notre code est capable de gérer l'exception FileNotFoundException.

Cas 2 : Le fichier est inaccessible

Pour éviter de tels cas, il faut faire attention si le fichier que nous essayons de lire est actuellement verrouillé par d'autres utilisateurs qui l'écrivent. Pour cela, nous pouvons utiliser les méthodes canRead() ou canWrite() de java.io. Classe de fichier qui indique si le fichier spécifié est disponible ou non à des fins de lecture ou d'écriture.

En utilisant ces 2 mesures de précaution, on peut facilement éviter une tentative par une instance de la classe file d'ouvrir un fichier qui peut entraîner une exception vérifiée. Cela améliore l'efficacité d'une application qui inclut un programme permettant d'accéder aux fichiers à partir d'un chemin spécifié.

Conclusion

FileNotFoundException est un type d'exception vérifiée qui se produit une fois qu'une tentative est effectuée sur le fichier qui n'existe pas ou n'est pas accessible à ce moment-là en raison d'un verrou. Puisqu'il s'agit d'une exception vérifiée, le compilateur Java garantit qu'elle a été gérée au moment de la compilation. Mais quand même, s’il faut l’éviter, ils peuvent utiliser les méthodes exist(), canRead() ou canWrite() présentes dans la classe File.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!