Java System.in/out/err总是打开吗?

时间:2018-04-09 04:35:38

标签: java io system.out system.in system.err

Javadoc说inouterr已经打开了,我只是想知道他们在节目结束后会关闭吗?如果不是这与使用后关闭任何I / O流引用的做法相矛盾?

2 个答案:

答案 0 :(得分:1)

System.in / out / err这些类由JVM实例化,而不是由我们实例化。 因此JVM将负责关闭它们。

答案 1 :(得分:1)

stdinstdoutstderr非常类似Unix概念,但其他操作系统(如Windows)也复制了这个概念。这些由系统维护,您通常不会关闭它们。

但是,你可以关闭它们,当你fork()一个程序时,你甚至 关闭它们,这是一种拥有程序的Unix方式从命令行分离并在后台运行,例如守护程序。

System.in / out / err遵循此策略。所以你可以关闭它们,但是你不必这样做,因为它们是特殊的系统资源。