2014-12-12 7 views
0
try 
    { 

     Employee test= null; 
     while(true) 
     { 
      test=(Employee)inputStream.readObject(); 
      list.addANodeToStart(test); 

     } 


    } 
    catch(EOFException e) 
    { 
     System.out.println("Reached end of file."); 
     System.exit(0); 

Эй, ребята, у меня проблема.Почему этот цикл не работает?

В блоке try у меня есть код для добавления сотрудников в LinkedList. По какой-то причине, когда я помещаю блок while (true), вся моя программа не работает, и она выводит только «достигнутый конец файла».

Однако, когда я удаляю блок while (true), он добавляет только первого сотрудника, поэтому делает остальную часть моей функции программы, но не полностью. Будучи тем, что мне нужно добавить список нескольких сотрудников, попросите пользователя ввести число и сравнить это число с номером сотрудников и вывести соответствующего сотрудника.

Любые идеи?

+1

Вы звоните 'System.exit (0);', когда вы дойдете до конца файла, который вызывает вашу программу, чтобы выйти, прежде чем любой другой код будет достигнут. Не лучше всего зацикливаться до тех пор, пока не будет выбрано исключение, но я подозреваю, что ваш код будет работать правильно, если вы удалите 'System.exit (0);' и просто получите пустой блок catch. – Paulpro

+0

Вы пробовали содержимое списка. Я думаю, что он правильно заполняется. Просто удалите системный выход из блока catch. –

+0

это сработало! благодаря – user4330497

ответ

0

Попробуйте следующее:

try 
{ 

    Employee test= null; 
    while(true) 
    { 
     test=(Employee)inputStream.readObject(); 
     list.addANodeToStart(test); 

    } 


} 
catch(EOFException e) 
{ 
    System.out.println("Reached end of file."); 
} 

// process the list 
Смежные вопросы