Salve a tutti. Non riesco a capire il funzionamento del metodo hasNextLine(), mi spiego meglio: ho capito che il metodo in questione controlla se sullo standard input e' presente un'ulteriore riga, e dunque se il controllo ha esito positivo restituisce il valore true, altrimenti restituisce false.
Ora viene il mio problema: quando eseguo questa classe, l'interprete lancia in esecuzione NoSuchElementException. Ho osservato infatti che anche se nel documento che passo come argomento dalla riga di comando ho finito le righe la condizione nel while non diventa false. Qualcuno saprebbe spiegarmi il motivo e saprebbe indicarmi una soluzione per evitare il lancio dell'eccezione?
import java.util.Scanner;
import java.io.*;
public class Prova
{
public static void main(String[] args) throws IOException
{
if(args.length != 1)
throw new IllegalArgumentException();
Scanner console = new Scanner(new File(args[0]));
while(console.hasNextLine()) {
String chiave = console.next();
String valore = console.next();
System.out.println(valore + chiave);
}
}
}
Questo e' il file che voglio leggere:
pane bread
amore love
fantasia fancy
libro book
mio mine
casa house
strada street
e and
il the
fondo end