Java.IO.Ioexcepción

Sheeraz Gul 12 octubre 2023
Java.IO.Ioexcepción

Este tutorial demuestra la excepción java.io.ioexception en Java.

la excepción java.io.IOException en Java

La IOexception es la excepción más común en Java. Las razones más comunes para esta excepción son:

  1. Leyendo un archivo, pero ese archivo no existe.
  2. Leer un archivo pero no tener permiso.
  3. Escribiendo un archivo, pero el espacio del disco no está disponible.
  4. Al leer un flujo, pero ese flujo está cerrado por algún otro proceso.
  5. Al leer un archivo de red, pero esa red está desconectada.

La Java.IO.IOexception proporciona excepciones para la serialización y los flujos de datos de entrada y salida del sistema.

También hay muchas otras razones para las excepciones de IO en Java. La siguiente tabla muestra los tipos o subclases de excepciones en Java:

Interfaz Descripción
InvalidClassException Esto ocurre cuando el tiempo de ejecución de serialización detecta una clase no válida.
InvalidObjectException Esto indica que los objetos de serialización fallaron en la validación.
NotActiveException Esto indica que la serialización o deserialización no está activa.
NotSerializableException Esto indica que se requiere que una instancia tenga una interfaz serializable.
ObjectStreamException Esto indica una superclase para todas las clases de flujo de objetos.
CharConversionException Se utiliza para excepciones de conversión de caracteres.
ExcepciónEOF Esto indica que durante la entrada, ha llegado el final del archivo de la secuencia.
FileNotFoundException Esto indica que el archivo al que intenta acceder no existe.
InterruptedIOException Esto indica que la operación de entrada-salida ha sido interrumpida.
OptionalDataException Esto indica la falla en la lectura de un objeto debido a datos primitivos no leídos o el final de los datos que pertenecen al objeto serializable de la secuencia.
StreamCorruptedException Esto indica que la información de control leída del flujo de objetos viola la verificación de coherencia interna.
SyncFailedException Esto indica que una operación de sincronización ha fallado.
UnsupportedEncodingException Esto indica que la codificación de caracteres dada no es compatible.
UTFDataFormatException Esto indica que se han leído datos UTF-8 con formato incorrecto en el flujo de entrada, o que cualquier clase que implementa la interfaz de entrada de datos lee estos datos.
WriteAbortedException Esto indica que se lanzó una ObjectStreamException durante la operación de escritura.

Las excepciones anteriores son los tipos de subclases de la excepción IO principal. Probemos un ejemplo que lanza la IOException en Java:

package delftstack;

import java.io.FileInputStream;
import java.io.IOException;

public class Example {
  public static void main(String[] args) throws Exception {
    FileInputStream File_Input_Stream = new FileInputStream("Demofile.txt");
    System.out.println("Check if the file is there. ");
  }
}

El código anterior arrojará la excepción IO FileNotFoundException porque el archivo al que estamos accediendo no existe. Ver salida:

Exception in thread "main" java.io.FileNotFoundException: Demofile.txt (The system cannot find the file specified)
    at java.base/java.io.FileInputStream.open0(Native Method)
    at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:111)
    at delftstack.Example.main(Example.java:8)

Para manejar estas excepciones, usamos bloques try-catch para evitar que JVM bloquee el código. Ver la solución:

package delftstack;

import java.io.FileInputStream;
import java.io.IOException;

public class Example {
  public static void main(String[] args) throws Exception {
    try {
      FileInputStream File_Input_Stream = new FileInputStream("Demofile.txt");
      System.out.println("Check if the file is there. ");
    } catch (IOException e) {
      // e.printStackTrace(); or
      System.out.println(e.getMessage());
    }
  }
}

Ahora el código anterior imprimirá la misma información de error pero sin bloquear el código. Ver salida:

Demofile.txt (The system cannot find the file specified)

Probemos con otro ejemplo que lanza la excepción de fin de archivo (EOFException) en Java:

package delftstack;

import java.io.DataInputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class Example {
  public void DemoCheck() {
    File file = new File("delftstack.txt");
    DataInputStream Data_Input_Stream = null;
    try {
      Data_Input_Stream = new DataInputStream(new FileInputStream(file));
      while (true) {
        Data_Input_Stream.readInt();
      }
    } catch (EOFException E_O_F_Exception) {
      E_O_F_Exception.printStackTrace();
    } catch (IOException I_O_Exception) {
      I_O_Exception.printStackTrace();
    } finally {
      try {
        if (Data_Input_Stream != null) {
          Data_Input_Stream.close();
        }
      } catch (IOException I_O_Exception) {
        I_O_Exception.printStackTrace();
      }
    }
  }
  public static void main(String[] args) {
    Example DemoExample = new Example();
    DemoExample.DemoCheck();
  }
}

El código arroja EOFException porque está tratando de leer un archivo y ha llegado el final del archivo. Ver salida:

java.io.EOFException
    at java.base/java.io.DataInputStream.readInt(DataInputStream.java:398)
    at delftstack.Example.DemoCheck(Example.java:16)
    at delftstack.Example.main(Example.java:39)
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Artículo relacionado - Java Error