java.io.EOFException这是个什么异常应该怎么解决
EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致异常。
这个一般是因为阻塞引起的,因为rver的input.read读不到东西就会阻塞,当你关掉client的时候,rver就知道没有东西进来了,所以就报了个异常,其实这个是正常的,只是告诉你,该把socket关闭一下,还有input也关闭一下。
java.io.EOFException这是个什么异常应该怎么解决
public class EOFExceptionextends IOException当输入过程中意外到达文件或流的末尾时,抛出此异常。 此异常主要被数据输入流用来表明到达流的末尾。注意,其他许多输入操作返回一个特殊值表示到达流的末尾,而不是抛出异常。 这个是Java 的解释。
从上面的提示可以模糊看到,因为不知道流的末尾,当到达末尾的时候,自然抛出了此异常。既然不知道结尾如何,干脆设一个缓存,然后读取一批数据后输出即可。
private static final int BUFFER_SIZE=1024*1024;
......
Socket socket = new Socket(cfg.getIp(), Integer.parInt(SysParamsToolkit.getProperty("socketport")));
String chart = SysParamsToolkit.getProperty("socke.rexml.chart"); //Socket发送的字符集编码
try {
OutputStream dos = socket.getOutputStream();
dos.write(xmlcmd.getBytes(chart));
dos.flush();
DataInputStream dis = new DataInputStream(socket.getInputStream());
char[] data = new char[BUFFER_SIZE];
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(), chart));
int len = br.read(data);
String rexml = String.valueOf(data, 0, len); //接收一个字符串数据
} catch (Exception e) {
return fal;
} finally {
if (socket.isConnected())
socket.clo();
}
上面的代码解决此问题
java.io.EOFException这是个什么异常应该怎么解决
1,内部类BlockDataInputStream.的方法peekByte抛出的异常,意思就是到达了文件的末尾,程序却没有正常结束读取文件内容,你可以单步调试一下看看到达文件末尾之后程序为什么没有停下来
2,从异常来看,你是不是使用了一个内部类BlockDataInputStream?错误就在BlockDataInputStream.peekByte()方法.
java.io.EOFException:当输入过程中意外到达文件或流的末尾时,抛出此异常。
此异常主要被数据输入流用来表明到达流的末尾。
java.io.EOFException这是个什么异常应该怎么解决
这是在tomcat里的错误,apache-tomcat-6.0.37\work\Catalina\localhost\你的项目,删除重新跑一遍就可以了,这是里边有一个文件在启动的时候会短暂的出现然后被删除,因为没有删除所以报的错误