Как закрыть сканер во время сна? - PullRequest
0 голосов
/ 24 сентября 2018
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
public class Lab1 {

    public static void main(String args[]) 
    throws InterruptedException {
        System.out.println("Please enter your first name.");
        String name;
        Scanner sc = new Scanner(System.in);
        name = sc.nextLine();
        System.out.println(name);
        Thread.sleep(1200); 
    } 
}

Поскольку сканер все еще открыт, пользователи могут печатать во время паузы.Это не приводит к сбою программы, но я все еще хочу иметь возможность закрыть сканер и иметь возможность открыть его позже в коде.

1 Ответ

0 голосов
/ 24 сентября 2018

Начиная с Java 7, Scanner реализует AutoCloseable, поэтому вы можете использовать try-with-resources для его автоматического закрытия:

String name;
try (Scanner in = new Scanner(System.in)) {
    name = in.nextLine();
}
System.out.println(name);
...