qual è il modo corretto di utilizzare più oggetti Scanner nel mio programma. Ad esempio, io uso lo scanner per leggere un file, quindi a seconda di ciò che si trova nel file, io uso di nuovo lo scanner per richiedere l'input dell'utente. Viene mostrato un estratto del mio codiceCome utilizzare più oggetti dello scanner su System.in?
....
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();
.....
}
}
....
Non sembra funzionare. Devo usare userInput.close()
? Che cosa sto facendo di sbagliato. ?
Quello che non capisco è che il primo System.in
sta solo ricevendo il nome del file. Dopo questo, perché interferisce con il secondo System.in
. Come per l'oggetto input
, la sua lettura da un file e non da System.in
.
collegamento interrotto sembra come dovrebbe essere -> https://www.securecoding.cert.org/confluence/display/java/FIO06-J.+Do+not+creare+multiple+buffered+wrappers+on+ un + singolo + byte + o + carattere + flusso – iX3