Guardando tutto il codice ho notato che invochi una sola volta il metodo readLine() e lo chiami al di fuori del while.