首页 > 编程知识 正文

java EOF,java中为什么会出现EOF异常

时间:2023-05-05 14:03:16 阅读:207229 作者:177

在某些情况下读取文件的内容时,在这种情况下将到达文件末尾,将引发EOFException。

特别是,在使用Input流对象读取数据时抛出此异常。在其他情况下,到达文件末尾时将抛出特定值。

示例

让我们考虑DataInputStream类,它提供了各种方法,如readboolean(),readByte(),readChar()等等。阅读原始值。当使用这些方法从文件读取数据时,到达文件末尾时,将引发EOFException。import java.io.DataInputStream;

import java.io.FileInputStream;

public class EOFExample {

public static void main(String[] args) throws Exception {

//Reading from the above created file using readChar() method

DataInputStream dis = new DataInputStream(new FileInputStream("D:\data.txt"));

while(true) {

char ch;

ch = dis.readChar();

System.out.print(ch);

}

}

}

运行时异常Hello how are youException in thread "main" java.io.EOFException

at java.io.DataInputStream.readChar(Unknown Source)

at SEPTEMBER.remaining.EOFExample.main(EOFExample.java:11)

处理EOFException

您不能使用DataInputStream类读取文件的内容,除非到达文件末尾。如果需要,可以使用InputStream接口的其他子类。

示例

在下面的示例中,我们使用FileInputStream类而不是DataInputStream重写了上述程序,以从文件中读取数据。import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.util.Scanner;

public class AIOBSample {

public static void main(String[] args) throws Exception {

//从用户读取数据

byte[] buf = " Hello how are you".getBytes();

//将其写入文件

DataOutputStream dos = new DataOutputStream(new FileOutputStream("D:\data.txt"));

for (byte b:buf) {

dos.writeChar(b);

}

dos.flush();

System.out.println("Data written successfully");

}

}

输出结果Data written successfully

以下是在Java中处理EOFException的另一种方法-import java.io.DataInputStream;

import java.io.EOFException;

import java.io.FileInputStream;

import java.io.IOException;

public class HandlingEOF {

public static void main(String[] args) throws Exception {

DataInputStream dis = new DataInputStream(new FileInputStream("D:\data.txt"));

while(true) {

char ch;

try {

ch = dis.readChar();

System.out.print(ch);

} catch (EOFException e) {

System.out.println("");

System.out.println("End of file reached");

break;

} catch (IOException e) {

}

}

}

}

输出结果Hello how are you

End of file reached

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。