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

jAvA.io.EoFExCEption rEADUTF

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

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

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

这个异常不是必须声明的,也就是说它虽然是异常,但其实是正常运行结束的标志。EOF表示读到了文件尾( String str = dis.readUTF(); ,客户端已经断开,后面已经没有内容可以读了),发送结束自然连接也就断开了。

这个我在部署到tomcat的时候遇到过这个情况,不知道和你的是否一样,我的处理方法 apache-tomcat-6.0.37\work\Catalina\localhost,把你的项目删除,重新跑一遍,tomcat中的错误是因为有一个文件在启动的时候会短暂的出现,然后被删除,如果没有...

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

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

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

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

main方法的改动如下: public static void main(String[] args)throws IOException{ FileOutputStream out1=new FileOutputStream("D:\\test.txt"); BufferedOutputStream out2=new BufferedOutputStream(out1); DataOutputStream out=new DataO...

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