В приведенных ниже примерах с клавиатуры считывается строка двумя немного отличающимися способами.
String file = new BufferedReader(new InputStreamReader(System.in)).readLine();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file = reader.readLine();
reader.close();
В первом случае, как я понимаю, вручную я не могу закрыть поток ввода. Он закрывается автоматически или существует до завершения программы?
И подскажите на будущее, как называется такая синтаксическая конструкция создания экземпляра класса, как в первом примере? Один из тех случаев, когда не знаешь как сформулировать вопрос в гугл.