关闭与System.in链接的扫描仪

我有一个Scanner链接到System.in 。 现在,在使用Scanner ,我应该关闭它,因为打开它是不好的编码习惯。 但是,如果我关闭Scanner ,我也将关闭System.in ! 任何人都可以告诉我如何关闭Scanner而不关闭System.in (如果有任何方法的话)。


一种选择是将System.in流封装到CloseShieldInputStream ,以防止它被关闭。 然后,您的阅读器将使用CloseShieldInputStream而不是原始System.in流。

以下是该类的API:http://commons.apache.org/io/apidocs/org/apache/commons/io/input/CloseShieldInputStream.html


最简单的事情是,如果您不想关闭基础流,请不要关闭Scanner。

理想情况下,您应该创建一个您在程序生命周期中使用的扫描仪。 无论如何,看起来你没有理由关闭它。


不要添加屏蔽类和类似的东西,只要提出一个很好的评论和一个

        @SuppressWarnings("resource")

这很好。 我似乎没有看到这种方法的很多缺点。 不要忘记评论。

链接地址: http://www.djcxy.com/p/96097.html

上一篇: Close a Scanner linked to System.in

下一篇: What is wrong with my scanner code?