Как я могу создать объект Scanner снова после того, как я выполнил его метод close ()? - PullRequest
0 голосов
/ 27 апреля 2019

когда я вошел во вторую очередь, оно показало java.util.NoSuchElementException, если я хочу снова использовать сканер после закрытия sc, как мне быть? Другой вопрос: как закрыть объект Scanner, созданный в другом Java-файле в методе main?

package test;        
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();
        System.out.println(i);
        sc.close();

        Scanner sc2 = new Scanner(System.in);
        int j = sc2.nextInt();
        System.out.println(j);
        sc2.close();

    }
}

1 Ответ

0 голосов
/ 27 апреля 2019

Q1.

Использование нескольких сканеров - плохая практика.

Вы можете использовать один и тот же сканер для выполнения всех ваших задач.

    Scanner sc = new Scanner(System.in);

    int i = sc.nextInt();
    System.out.println(i);

    int j = sc.nextInt();
    System.out.println(j);

    sc.close();

Q2.

Если вы хотите использовать сканер в нескольких классах, вы можете сделать следующее

static final Scanner sc = new Scanner(System.in);

Создание статического сканера в одном классе. И тогда вы можете импортировать и использовать его из других классов.

...