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

2022-09-01 01:33:46

我有一个链接。现在,在使用之后,我应该关闭它,因为让它保持打开状态是糟糕的编码实践。但是,如果我关闭,我也将关闭!任何人都可以告诉我如何在不关闭的情况下关闭(如果有的话)。ScannerSystem.inScannerScannerSystem.inScannerSystem.in


答案 1

最简单的方法是,如果您不想关闭基础流,则不要关闭扫描程序。

理想情况下,您应该只创建一个扫描仪,用于程序的生命周期。无论如何,您似乎没有充分的理由关闭它。


答案 2

一种选择是将流包装在防止其关闭的 中。然后,您的读者将使用而不是原始流。System.inCloseShieldInputStreamCloseShieldInputStreamSystem.in

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


推荐