package sandbox2;
import java.util.Scanner;
public class Sandbox2
{
public static void main(String[] args)
{
for (int i = 0; i < 5; i++)
{
String s = askForProperty("Enter value for " + i + ": ");
System.out.println(i + " is: " + s);
}
}
private static String askForProperty(String message)
{
Scanner keyboard = new Scanner(System.in);
System.out.print(message);
String s = keyboard.nextLine();
keyboard.close();
return s;
}
}
上記のコードを実行すると、最初の応答が完全に返されます。2 番目の応答を要求しようとすると、次のように返されます。
java.util.NoSuchElementException: No line found
なぜこのエラーが返されるのでしょうか? メソッド askForProperty が呼び出されるたびに、スキャナは完全に新しいインスタンスになります! 入力ストリームとして System.in と何か関係がありますか?