Lectura de líneas con BufferedReader y comprobación del final del archivo

Si tengo algo como esto en mi código:

String line = r.readLine();  //Where r is a bufferedReader

¿Cómo puedo evitar un bloqueo si la siguiente línea es el final del archivo? (es decir, nulo)

Necesito leer la siguiente línea porque puede haber algo con lo que deba lidiar, pero si no existe, el código simplemente se bloquea.

Si hay algo allí, entonces todo está bien, pero no puedo estar seguro de que habrá algo allí.

Así que si hago algo como: (pseudo código):

if (r.readLine is null)
//End code

else {check line again and excecute code depending on what the next line is}

El problema que tengo con algo como esto es que cuando compruebo la línea contra nulo, ya se mueve a la siguiente línea, entonces, ¿cómo puedo verificarla nuevamente?

No he encontrado una manera de hacer esto, cualquier sugerencia sería de gran ayuda.

Respuestas a la pregunta(6)

Su respuesta a la pregunta