So I wrote these two methods:
public Player readPlayerData() {
Player player = new Player();
try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in))){
System.out.println("What is your name?");
player.setName(br.readLine());
System.out.println("How much money do you have?");
player.setBalance(BigDecimal.valueOf(Double.parseDouble(br.readLine())));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(player);
return player;
}
public Currency readPlayerCurrency() {
Currency currency = null;
try(BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in))){
System.out.println("What is your currency?");
currency = Currency.valueOf(br2.readLine());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(currency);
return currency;
}
When I call one at a time they work as intended, but when I call them after eachother I get a java.io.IOException: Stream closed. Does try with resources close the System.in input stream somehow or am I misunderstanding how it works?