EOFException异常详解
一、EOFException异常描述:
java.io.EOFException
class EOFException extends IOException异常类,继承自IOExcption,说明是一个IO流异常类
二、EOFException异常类描述
Signals that an end of file or end of stream has been reached unexpectedly during input.
在输入过程中意外地到达文件结尾或流结束的信号
This exception is mainly used by data input streams to signal end of stream. Note that many other input operations return a special value on end of stream rather than throwing an exception.
此异常主要由数据输入流用于流结束信号。注意,许多其他输入操作在流结束时返回一个特殊值,而不是抛出异常
三、EOFException异常分析
也就是说这个Exception是在输入流执行文件或者流结束时发出的一个信号异常。所以我们是需要将这个异常(EOFException)进行捕获,而不是抛出(之所以客户现场会返回这个日志,不就是抛出EOFException的异常了么)
四、EOFException异常示例
以下程序演示了如何在Java中处理EOFException。
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
public class Just {
public static void main(String[] args) throws Exception {
//从用户读取数据
Scanner sc = new Scanner(System.in);
System.out.println("Enter a String: ");
String data = sc.nextLine();
byte[] buf = data.getBytes();
//将其写入文件
DataOutputStream dos = new DataOutputStream(new FileOutputStream("D:\\data.txt"));
for (byte b:buf) {
dos.writeChar(b);
}
dos.flush();
//Reading from the above created file using readChar() method
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) {}
}
}
}
输出结果
Enter a String:
Hello how are you
Hello how are you
End of file reached
五、EOFException异常结论
0、关于EOFExcption的日志显示,正常线上应该不抛出,不打印.处理方案是将捕获到EOFException的IO代码不抛出EOFException,不打印EOFException
EOFException的正常使用方式是捕获EOFException后,处理文件or流读到end时需要做的后续工作.
1、EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致从session中获取数据失败。异常是tomcat本身的问题,由于tomcat上次非正常关闭时有一些活动session被持久化(表现为一些临时文件),在重启时,tomcat尝试去恢复这些session的持久化数据但又读取失败造成的。此异常不影响系统的使用。
2、源码型病毒是攻击高级语言编写的程序,病毒在高级语言编写的程序编译之前插入到源程序中,经编译成功后成为合法程序的一部分。这是一个典型的引导型病毒。
3、一个病毒的前缀对我们快速的判断该病毒属于哪种类型的病毒是有非常大的帮助的。通过判断病毒的类型,就可以对这个病毒有个大概的评估。而通过病毒名我们可以利用查找资料等方式进一步了解该病毒的详细特征。病毒后缀能让我们知道现在在你机子里呆着的病毒是哪个变种。
原文链接:http://www.jxszl.com/biancheng/JAVA/84286.html