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:
- Leyendo un archivo, pero ese archivo no existe.
- Leer un archivo pero no tener permiso.
- Escribiendo un archivo, pero el espacio del disco no está disponible.
- Al leer un flujo, pero ese flujo está cerrado por algún otro proceso.
- 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 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 FacebookArtículo relacionado - Java Error
- Arreglar Java fue iniciado por el código de salida devuelto = 1
- Arreglar JAVA_HOME no se puede determinar a partir del error de registro en R
- Arreglar java.io.IOException: No queda espacio en el dispositivo en Java
- Arreglar Java.IO.NotSerializableException en Java
- Arreglar Java.Lang.IllegalStateException de Android: no se pudo ejecutar el método de la actividad
- Arreglar Java.Lang.NoClassDefFoundError: No se pudo inicializar el error de clase