关闭链接到 System.in 的扫描仪
关闭链接到 System.in 的扫描仪可能会让人左右为难。虽然关闭开放资源是一种良好的编码习惯,但使用连接到 System.in 的扫描程序执行此操作也会关闭 System.in 本身。这就提出了一个问题:有没有办法在不影响 System.in 的情况下关闭扫描程序?
解决方案
最简单的解决方案是不要关闭扫描程序,如果您不打算关闭底层流。在大多数情况下,建议创建一个为整个程序提供服务的扫描程序。这样就无需重复创建和关闭它。
如果由于某种原因必须关闭 Scanner,一种选择是使用相同的底层流创建一个新的 Scanner 实例。这将两个实体分开,并允许您关闭扫描程序而不影响 System.in。
这是一个示例:
Scanner scanner = new Scanner(System.in); // Use the scanner as needed... // Create a new scanner with the same underlying stream. Scanner newScanner = new Scanner(System.in); // Close the first scanner. scanner.close(); // Continue using the new scanner. newScanner.nextInt(); // Close the second scanner. newScanner.close();
此方法可确保 System.in 不受影响,同时允许您关闭原始 Scanner。
需要注意的是,创建多个 Scanner 实例可能会对性能产生影响。如果性能是一个问题,最好在程序的整个生命周期中使用单个扫描仪。
以上是我应该关闭链接到 System.in 的扫描程序吗?的详细内容。更多信息请关注PHP中文网其他相关文章!