2013-10-10 3 views
0

Вот что я пытаюсь читать:Почему я получаю исключение EOF при чтении datainputstream в java?

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, и, когда вы его получите, закройте сокет и вырвайтесь из цикла.

Смежные вопросы