Excepción de archivo no encontrado es otra clase de excepción disponible en el java.io paquete. La excepción ocurre cuando intentamos acceder a ese archivo que no está disponible en el sistema. Es una excepción comprobada porque ocurre en tiempo de ejecución, no en tiempo de compilación, y la genera uno de los siguientes constructores:
Constructor FileNotFoundException
La clase FileNotFoundException tiene los dos constructores siguientes:
1. FileNotFoundException()
Construye una FileNotFoundException y establece el mensaje de detalle del error como nulo porque no pasamos ningún parámetro al constructor.
Sintaxis:
La sintaxis del Excepción de archivo no encontrado es como sigue:
public FileNotFoundException()
2. FileNotFoundException (cadena de cadena)
Construye una excepción FileNotFoundException y establece el mensaje detallado del error. cadena, que pasamos al constructor.
Sintaxis:
La sintaxis del Excepción de archivo no encontrado es como sigue:
java frente a c++
public FileNotFoundException(String str)
Métodos FileNotFoundException
Proporciona todos los métodos proporcionados por el java.lang.Throwable y el java.lang.Objeto clases porque es una subclase de ambas clases.
Métodos de la clase java.lang.Throwable
agregar suprimido (), llenarInStackTrace (), obtener causa (), obtener mensaje localizado (), obtener mensaje (), obtenerStackTrace (), obtener suprimido (), causa init (), imprimirStackTrace (), imprimirStackTrace (), imprimirStackTrace (), establecerStackTrace (), y Encadenar ().
Métodos de la clase java.lang.Object
clon (), es igual (), finalizar (), obtener clase (), código hash (), notificar (), notificar a todos (), y esperar ().
Para obtener más información sobre estos métodos, visite lo siguiente:
https://www.javatpoint.com/object-class
https://www.javatpoint.com/post/java-throwable
¿Por qué ocurre FileNotFoundException?
Hay principalmente dos razones por las que recibimos este error. Las razones para obtener esta excepción son las siguientes:
- Cuando intentamos acceder a ese archivo, no está disponible en el sistema.
- Cuando intentamos acceder a ese archivo que es inaccesible, por ejemplo, si un archivo está disponible para operación de solo lectura e intentamos modificarlo, puede generar un error.
Tomemos algunos ejemplos y comprendamos los puntos anteriores uno por uno:
FileNotFoundExample1.java
// import required classes and packages package javaTpoint.MicrosoftJava; import java.io.*; // it contains all the input and the output streams // create FileNotFoundExceptionExample1 to undestand the first point. public class FileNotFoundExceptionExample1 { public static void main(String[] args) { // creating an instance of the FileReader class FileReader fileReader = new FileReader('Test.txt'); // create an instance of the BufferedReader and pass the FileReader instance to it. BufferedReader bufferReader = new BufferedReader(fileReader); // declaring an empty string by passing null value String fileData = null; // use while loop to read and print data from buffered reader while ((fileData = bufferReader.readLine()) != null) { System.out.println(fileData); } // closing the BufferedReader object try { bufferReader.close(); } catch (IOException e) { e.printStackTrace(); } } }
Producción:
FileNotFoundExample2.java
// import required classes and packages package javaTpoint.MicrosoftJava; import java.io.*; // it contains all the input and the output streams // create FileNotFoundExceptionExample2 to understand the second point. public class FileNotFoundExceptionExample2 { // main() method start public static void main(String[] args) { try { // creating an instance of the File class to open file File fileObj = new File('Test.txt'); // creating an instance of the PrintWriter class by initiating FileWriter class instance PrintWriter printWriter1 = new PrintWriter(new FileWriter(fileObj), true); // print simple text hello world printWriter1.println('Hello world'); printWriter1.close(); // making Test file read only fileObj.setReadOnly(); // try to write data into Test.txt file PrintWriter printWriter2 = new PrintWriter(new FileWriter('Test.txt'), true); printWriter2.println('Hello World'); printWriter2.close(); } // catching exception thrown by the try block catch(Exception ex) { ex.printStackTrace(); } } }
Producción:
Manejo de FileNotFoundException
Para manejar la excepción, es necesario utilizar el bloque try-catch. En el bloque try pondremos esa línea de código que puede generar una excepción. Siempre que ocurre una excepción, el bloque catch la manejará. Hay otras formas de eliminar el Excepción de archivo no fuente y que son los siguientes:
- Si encontramos el mensaje de error no existe tal archivo o directorio ; Podemos eliminar esa excepción volviendo a verificar el código y verificando si el archivo dado está disponible en el directorio dado o no.
- Si encontramos el mensaje de error acceso denegado , tenemos que verificar si el permiso del archivo cumple con nuestros requisitos o no. Si el permiso no cumple con nuestros requisitos, tenemos que modificar el permiso del archivo.
- Para acceso denegado mensaje de error, también tenemos que verificar si ese archivo está siendo utilizado por otro programa o no.
- Si encontramos el mensaje de error el archivo especificado es un directorio , tenemos que borrarlo o cambiar el nombre del archivo.
Entonces, en la clase FileNotFoundExceptionExample1, colocamos el código FileReader en el bloque try-catch y nos aseguramos de que el nombre de archivo dado esté disponible en el directorio.
FileNotFoundExample1.java
objeto de java
// import required classes and packages package javaTpoint.MicrosoftJava; import java.io.*; // it contains all the input and the output streams // create FileNotFoundExceptionExample1 public class FileNotFoundExceptionExample1 { public static void main(String[] args) { // creating an instance of the FileReader class FileReader fileReader; try { fileReader = new FileReader('Test.txt'); // create instance of the BufferedReader and pass the FileReader instance to it. BufferedReader bufferReader = new BufferedReader(fileReader); // declaring an empty string by passing null value String fileData = null; // use while loop to read and print data from buffered reader try { while ((fileData = bufferReader.readLine()) != null) { System.out.println(fileData); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }
Producción: