¿Cómo usar múltiples objetos Scanner en System.in?

¿Cuál es la forma correcta de utilizar múltiples objetos Scanner en mi programa? Por ejemplo, uso el escáner para leer un archivo, luego, dependiendo de lo que se encuentre en el archivo, uso el escáner nuevamente para solicitar la entrada del usuario. Se muestra un extracto de mi código

....
Scanner f = new Scanner (System.in); //get the file name
String fileName = f.next();
Scanner input = new Scanner( new File( fileName ) );
while ( input.hasNext() )
{
   String currentLine = input.nextLine();
   if ( some pattern found) {
       Scanner getUserInput = new Scanner (System.in);
       String userInput = getUserInput.next();
       .....
   }
}
....

No parece funcionar. ¿Necesito usaruserInput.close() ? Qué estoy haciendo mal. ?

Lo que no entiendo es, el primeroSystem.in solo está obteniendo el nombre del archivo. Después de eso, ¿por qué interfiere con el segundo?System.in. En cuanto ainput objeto, su lectura de un archivo y no deSystem.in.

Respuestas a la pregunta(1)

Su respuesta a la pregunta