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\你的項目,刪除重新跑一遍就可以了,這是里邊有一個文件在啟動的時候會短暫的出現然后被刪除,因為沒有刪除所以報的錯誤