Я думаю, вам стоит попробовать переместить menu.close();
в другой метод, вызываемый в конце. Также переместите BufferedReader menu
в более высокий уровень видимости из метода и просто используйте menu = new BufferedReader(new InputStreamReader(System.in));
в методе.
BufferedReader menu;
void method(){
menu = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; players.length > i; i++) {
System.out.println("Choose the " + i + " player");
System.out.println("1. New Player");
System.out.println("2. Old Player");
int choice2 = Integer.parseInt(menu.readLine());
System.out.println("Which team are you on?");
int playersTeam = Integer.parseInt(menu.readLine());
Person player = new Person();
if (choice2 == 1) {
player.squadFilling();
player.playerNaming();
} else if (choice2 == 2) {
break;
}
}
cleanup();
}
Это позволяет нам создать метод cleanup ().
private void cleanup(){
menu.close();
}
Я думаю, что это может помочь, потому что я считаю, что menu.close () вызывается, пока писатель все еще заканчивает свою последнюю l oop. Думаю, добавление cleanup () как отдельного метода подойдет.