Java.IO.Io-Ausnahme

Sheeraz Gul 12 Oktober 2023
Java.IO.Io-Ausnahme

Dieses Tutorial demonstriert die java.io.ioexception in Java.

die java.io.IOException in Java

Die IOexception ist die häufigste Ausnahme in Java. Die häufigsten Gründe für diese Ausnahme sind:

  1. Lesen einer Datei, aber diese Datei existiert nicht.
  2. Eine Datei lesen, aber keine Berechtigung haben.
  3. Schreiben einer Datei, aber der Speicherplatz ist nicht verfügbar.
  4. Beim Lesen eines Streams, aber dieser Stream wird von einem anderen Prozess geschlossen.
  5. Beim Lesen einer Netzwerkdatei, aber das Netzwerk ist getrennt.

Die Java.IO.IOexception stellt Ausnahmen für Systemeingabe- und -ausgabedatenströme und Serialisierung bereit.

Es gibt auch viele andere Gründe für die IO-Ausnahmen in Java. Die folgende Tabelle zeigt die Typen oder Unterklassen von Ausnahmen in Java:

Schnittstelle Beschreibung
InvalidClassException Dies tritt auf, wenn die Serialisierungslaufzeit eine ungültige Klasse erkennt.
InvalidObjectException Dies weist darauf hin, dass die Überprüfung der Serialisierungsobjekte fehlgeschlagen ist.
NotActiveException Dies zeigt an, dass die Serialisierung oder Deserialisierung nicht aktiv ist.
NotSerializableException Dies zeigt an, dass eine Instanz eine serialisierbare Schnittstelle haben muss.
ObjectStreamException Dies zeigt allen Objektstromklassen eine Oberklasse an.
CharConversionException Wird für Ausnahmen bei der Zeichenkonvertierung verwendet.
EOFException Dies zeigt an, dass während der Eingabe das Ende der Datei des Streams erreicht wurde.
FileNotFoundException Dies zeigt an, dass die Datei, auf die Sie zugreifen möchten, nicht existiert.
InterruptedIOException Dies zeigt an, dass die Eingabe-Ausgabe-Operation unterbrochen wurde.
OptionalDataException Dies zeigt den Fehler beim Lesen eines Objekts aufgrund ungelesener primitiver Daten oder das Ende der Daten an, die zum serialisierbaren Objekt des Streams gehören.
StreamCorruptedException Dies zeigt an, dass die aus dem Objektstrom gelesenen Steuerinformationen gegen die interne Konsistenzprüfung verstoßen.
SyncFailedException Dies weist darauf hin, dass ein Synchronisierungsvorgang fehlgeschlagen ist.
UnsupportedEncodingException Dies zeigt an, dass die angegebene Zeichencodierung nicht unterstützt wird.
UTFDataFormatException Dies weist darauf hin, dass fehlerhafte UTF-8-Daten im Eingabestrom gelesen wurden oder dass diese Daten von einer beliebigen Klasse gelesen werden, die die Dateneingabeschnittstelle implementiert.
WriteAbortedException Dies weist darauf hin, dass während des Schreibvorgangs eine ObjectStreamException ausgelöst wurde.

Die obigen Ausnahmen sind die Arten von Unterklassen der Haupt-IO-Ausnahme. Versuchen wir ein Beispiel, das die IOException in Java auslöst:

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. ");
  }
}

Der obige Code löst die IO FileNotFoundException aus, da die Datei, auf die wir zugreifen, nicht existiert. Siehe Ausgabe:

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)

Um diese Ausnahmen zu behandeln, verwenden wir try-catch-Blöcke, um zu verhindern, dass JVM den Code zum Absturz bringt. Siehe die Lösung:

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());
    }
  }
}

Jetzt druckt der obige Code die gleichen Fehlerinformationen, aber ohne den Code zum Absturz zu bringen. Siehe Ausgabe:

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

Versuchen wir ein weiteres Beispiel, das die End of File-Ausnahme (EOFException) in Java auslöst:

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();
  }
}

Der Code wirft EOFException, weil er versucht, eine Datei zu lesen, und das Ende der Datei erreicht ist. Siehe Ausgabe:

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

Verwandter Artikel - Java Error