【问题标题】:Who manages System.in/System.out opening/closing?谁管理 System.in/System.out 打开/关闭?
【发布时间】:2014-09-03 09:17:07
【问题描述】:

众所周知,System.inSystem.out 分别是 InputStreamPrintStream。因此它是一个 java.io Streams。

当我们使用流时,我们应该打开和关闭它。我们还应该捕获很多异常。当我们与System.inSystem.out 合作时,我们避免了这些活动。

谁代替我们执行这些活动?以及何时(在什么条件下?)流打开/关闭?

【问题讨论】:

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


    【解决方案1】:

    Java 运行时(“解释器”)本身负责在您的代码开始运行之前打开这些句柄。

    因此,只要您输入 main(),它们就可以使用。除非您自己关闭它们,否则它们将在计划期间保持打开状态。

    【讨论】:

    • 它是之前的操作系统; System 上有设置器,其中 Java 运行时设置 InputStream 和 PrintStream 的实例,这些实例包装了底层操作系统级别的流。除非当然有人自己打电话给那些设置者:)
    • 当JVM打开它们时,可以说only the JVM should close them
    • @Raedwald,我并不是建议关闭它们,尽管在某些情况下这样做肯定是有效的。我只是对“何时(在什么条件下?)流打开/关闭?”这个问题提供了一个完整的答案。
    猜你喜欢
    • 1970-01-01
    • 2020-07-24
    • 2015-04-24
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    相关资源
    最近更新 更多