Известно, что System.in
и System.out
- это InputStream
и PrintStream
соответственно. Таким образом, это потоки java.io.Кто управляет открытием/закрытием System.in/System.out?
Когда мы работаем с потоками, мы должны открывать и закрывать его. Также нам нужно поймать множество исключений. Когда мы работаем с System.in
и System.out
, мы избавились от этих действий.
Кто выполняет эти действия вместо нас? и когда (при каких условиях?) потоки открываются/закрываются?
и это ОС до этого; в системе есть среда, где Java Runtime устанавливает экземпляры InputStream и PrintStream, которые обертывают базовые потоки уровня ОС. Если, конечно, не идет речь, и звонит самим сеттерам :) –
И поскольку JVM открыл их, можно утверждать, что [только JVM должен закрыть их] (http://stackoverflow.com/a/7457737/545127). – Raedwald
@ Raedwald, я не предлагал, чтобы они были закрыты, хотя, конечно, это действительно так, чтобы сделать это при некоторых обстоятельствах. Я просто дал полный ответ на вопрос «когда (при каких условиях?) Потоки открываются/закрываются?». – paxdiablo