lzth.net
当前位置:首页 >> jAvA.io.EoFExCEption rEADUTF >>

jAvA.io.EoFExCEption rEADUTF

可能是因为阻塞引起的,因为服务器读不到东西就会阻塞,所以就报了个异常,其实这个是正常的,确保把socket关闭一下,还有inputStream也关闭一下。

样例一,if中读到文件末尾最后一行时,if条件为真,运行里面的语句,此时,已经读写完了文件,再调用readUTF()所以会报错。样例二中判断每次读到的值,当读到结束标识时,if条件为假,结束。

你这只判断客户连接进来才判断了datas为true 并没有当客户离开时把datas设置为false。 所以datas的值一直都是true。 关闭之后当然会包流不存在的错误。。。

试了一下文件内容纯英文就没问题,会不会是转码问题? 你可以看一下底层源码

dos.close(); dis.close(); 顺序换一下

while(true),这是死循环。你输出操作完了之后,最起码要退出吧?否则会一直做写的操作。当然会包流异常。

在网上查的资料说是因为流数据已经读完,就会抛出EOFException,是正常情况

把你的ServerAgent.java代码发出来看看。看Log是你使用DataInputStream有问题

at com.datastream.test.DataStreamTest.main(DataStreamTest.java:23) dis.readUTF(); 这行注释掉可以运行了 这句话产生异常,“e.printStackTrace(); ”就是因为捕获到异常,所以会打印异常信息;EOFException 最好把声明的流都给关闭 fos.close...

这个方法是用来 读入一个已使用 UTF-8 修改版格式编码的字符 而你的文件中的字符肯定没有使用这种编码格式所以才会抱这种错误 其实像你这样做使用BufferedReader是最合适的了。 DataInputStream dis =new DataInputStream(in); 把这句换成 Buffe...

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com