public class Program {
public static void main(String[] args) throws FileNotFoundException
{
String string = "Zawartosc stringu.";
File file = new File("test.txt");
Scanner scanner;
scanner = new Scanner(string);
System.out.println(scanner.nextLine());
scanner.close();
scanner = new Scanner(string);
System.out.println(scanner.nextLine());
scanner.close();
scanner = new Scanner(file);
System.out.println(scanner.nextLine());
scanner.close();
scanner = new Scanner(file);
System.out.println(scanner.nextLine());
scanner.close();
scanner = new Scanner(System.in);
System.out.println(scanner.nextLine());
scanner.close();
scanner = new Scanner(System.in);
System.out.println(scanner.nextLine());
scanner.close();
}
}
Co w takim przypadku wyrzuca konsola.
Zawartosc stringu.
Zawartosc stringu.
Zawartosc pliku test.txt
Zawartosc pliku test.txt
ok <-- podane przez uzytkownika
ok
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at zelent.Program.main(Program.java:37)
Metoda close() w klasie Scanner powoduje zamknięcie wejścia jeżeli źródło posiada interfejs Closable.
W tym wypadku zamykamy źródło, którym jest Scanner.in i uniemożliwia nam to odczytanie wejścia jeżeli się do niego odwołamy.