应该关闭带字符串输入的Java Scanner?

问题描述 投票:3回答:3

声纳抱怨扫描仪应该一直关闭,是不是?

Scanner scanner = new Scanner("simple string")

此扫描仪不扫描文件等。为什么要关闭它?

java java.util.scanner sonar-runner
3个回答
1
投票

通过调用new Scanner("string"),它创建了一个StringReader,它创建了一个字符流。所以你必须关闭它。

See the OpenJDK source code

public Scanner(String source) {
    this(new StringReader(source), WHITESPACE_PATTERN);
}

1
投票

如Sonar doc中所述,

实现Closeable接口或其超级接口AutoCloseable的连接,流,文件和其他类需要在使用后关闭。

并且Scanner确实实现了Closeable接口。因此它应该被关闭。

请参阅此link


0
投票

无需关闭扫描程序,但最好是为了释放为扫描程序分配的资源以优化代码并使其更快更有效。

© www.soinside.com 2019 - 2024. All rights reserved.