Java 中的 StreamCorruptedException


在 Java 中,StreamCorruptedException 发生在读取或写入流的数据时出现问题时。问题可能是我们正在读取或写入的数据格式错误或包含错误。如果给定文件的格式不正确。当流意外关闭或数据被部分覆盖时。

在这篇文章中,我们将讨论 StreamCorruptedException 并举例说明。但在继续之前,了解流及其在示例中将使用的一些方法非常重要。

处理 StreamCorruptedException 的程序

流是一种抽象,在 Java 中执行输入和输出操作时使用。基本上,输入流用于从键盘、磁盘文件等来源获取输入。输出流指的是数据显示或写入的目标位置。

FileReader − 用于读取字符。

FileWriter − 用于写入字符。

要使用这些类,我们需要定义它们的 对象 −

语法

FileReader nameOfobject = new FileReader(“nameOfFile”); 
FileWriter nameOfobject = new FileWriter(“nameOfFile”);

StreamCorruptedException − 它是 ObjectStreamException 的子类。它可以用两种方式使用,不提供异常原因,以及用双引号括起来的字符串类型的理由。

语法

StreamCorruptedException();
Or,
StreamCorruptedException(“value”);

方法

read() − 用于从给定源读取一个字节。

要使用 I/O 流,我们需要在我们的 Java 程序中导入以下包 −

import java.io.*;

‘*’ 表示我们正在导入此包中所有可用的类。StreamCorruptedException 是 java.io 的类之一。

示例 1

在这个例子中,我们将使用 StreamCorruptedException 类而不提供异常原因。

import java.io.*;
public class Streams {
   public static void main(String args[]) throws IOException {
      FileReader reading = null;
      FileWriter writing = null;
      try {
         reading = new FileReader("Stream.java");
         writing = new FileWriter("stream");
         int copy;
         while ((copy = reading.read()) != -1) {
            throw new StreamCorruptedException();
         }
      }   
      catch (StreamCorruptedException exp) {
         // To handle StreamCorruptedException 
         System.out.println(exp);
      }
      catch (Exception exp) {
         // To handle other exception
         System.out.println("Other exception found");
      }
   }
}

编译上述 Java 文件:‘javac Streams.java’

编译后,使用以下命令运行 Java 文件:‘java Streams’

输出

Other exception found

在上面的代码中,我们创建了 FileReader 和 FileWriter 类的两个实例“reading”和“writing”,分别对给定文件执行读写操作。在 try 块的 while 循环中,我们尝试读取文件“Stream.java”的内容。虽然我们创建了一个整数类型的变量“copy”来存储该文件的内容,但我们没有给出复制位置的指令,因此抛出了 StreamCorruptedException。

示例 2

在这个例子中,我们将使用带有异常原因的 StreamCorruptedException 类。

import java.io.*;
public class Streams {
   public static void main(String args[]) throws IOException {
      FileReader reading = null;
      FileWriter writing = null;
      try {
         reading = new FileReader("Stream.java");
         writing = new FileWriter("stream");
         int copy;
         while ((copy = reading.read()) != -1) {
            throw new StreamCorruptedException("Please!! Provide a valid file type!");
         }
      }   
      catch (StreamCorruptedException exp) {
         // To handle StreamCorruptedException 
         System.out.println(exp);
      }
      catch (Exception exp) {
         // To handle other exception
         System.out.println("Other exception found");
      }
   }
}

输出

java.io.StreamCorruptedException: Please!! Provide a valid file type!

在上面的代码中,我们使用了示例 1 程序,但这次我们使用了一个带有抛出异常的消息,该消息显示了发生异常的原因。

结论

在 Java 中,我们使用 try 和 catch 块来处理异常。异常发生在运行时而不是编译时,因此正确处理它非常重要,否则可能会给我们带来麻烦。在本文中,我们了解了如何处理 Java 中的一种名为 StreamCorruptedException 的异常。

更新于:2023年5月12日

478 次浏览

开启你的职业生涯

通过完成课程获得认证

开始
广告