2013-10-10 146 views
0

这是我想读:在java中读取datainputstream时,为什么会出现EOF异常?

FileInputStream fis=new FileInputStream("count.txt"); 
    BufferedInputStream bis=new BufferedInputStream(fis); 
    DataInputStream dis=new DataInputStream(bis); 
    while(dis.read()!=-1) 
    { 
    orderCount=dis.readInt(); 
    newOrderCount=dis.readInt(); 
    } 

Count.txt有数据,如0 0 0 0 0 0 0 1,但由于某些原因,我得到一个EOF异常,请帮忙!

+3

因为你在同一个循环周期内做了两次读取... – MadProgrammer

+0

不,我只删除了一个int仍然是一样的 – Snedden27

+0

每个周期一次读取对我有效.. – MadProgrammer

回答

0

EOFException表示您试图读取流尾,这可能是因为您正在读取一个字节然后将其丢弃,这已经是一个错误,因为它会让您与发送者不同步。将回路测试更改为while (true),捕获EOFException,并且,当您得到它时,关闭套接字并跳出循环。

相关问题