直接来自此扫描仪API:
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();
答案 0 :(得分:3)
首先我们养成习惯;然后我们的习惯使我们成长。
我会说关闭这个流,因为习惯于关闭finally
块中的资源是有道理的。
答案 1 :(得分:2)
我不这么认为,但是如果您更改代码以使用流,最好还是关闭它。这也是一个很好的习惯,你真的很想进入。
答案 2 :(得分:1)
如果我们不关闭Scanner
的String,就不会有资源泄漏。内部new Scanner(String)
创建StringReader
作为基础来源,当我们关闭Scanner
时,它会关闭StringReader
,但这不起作用。
答案 3 :(得分:0)
如果您希望扫描程序标记为已关闭(以便对象上的所有后续操作都会立即失败),则必须调用 Scanner.close()
答案 4 :(得分:0)
我相信使用scanner.close(); 我这样说是因为它可以防止资源泄漏,如果你把它变成习惯,那么对你来说非常有益。
答案 5 :(得分:0)