Eclipse说扫描仪永远不会关闭,并提示我禁止它,但它已关闭。
public boolean hasPlayerAlreadyJoined(Player p) {
try {
Scanner scanner = new Scanner(joinedPlayers);
while (scanner.hasNextLine()) {
String name = scanner.nextLine();
if (name.equals(p.getName())) {
return true;
}
}
scanner.close();
} catch(Exception e){}
return false;
}
我猜这是因为while循环,但我之前从未遇到过这样的错误。我做错了吗?
答案 0 :(得分:1)
将scanner.close();
放在a finally
子句中,以便最后调用它。这是最佳方式:
Scanner scanner = new Scanner(joinedPlayers);
try {
....
}
catch(...) {
....
}
finally {
scanner.close();
}