关闭与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