1

Javadoc 说inout并且err“已经打开”,我只是想知道它们会在程序完成后关闭吗?如果不是,是否与使用后关闭任何 I/O 流引用的做法相矛盾?

4

2 回答 2

1

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

于 2018-04-09T04:38:26.687 回答
1

stdinstdout并且stderr在很大程度上是一个 Unix 概念,但其他操作系统(如 Windows)也复制了这个概念。这些由系统维护,您通常不会关闭它们。

但是,您可以关闭它们,甚至在您执行程序时也必须fork()关闭它们,这是 Unix 让程序从命令行分离并在后台运行的方式,例如守护程序。

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

于 2018-04-09T04:48:06.550 回答