Pergunta interessante. Primeiro vamos observar a classe Scanner, só para conhecimento. Ela implementa a interface Closeable

public final class Scanner implements Iterator<String>, Closeable {...}

E a interface Closeable extends AutoCloseable

public interface Closeable extends AutoCloseable {...}

E nessa AutoCloseable, a própria doc da classe já dá uma ideia da função do método close().

Em resumo, você deve chamar o método close() para liberar imediatamente qualquer recurso que tenha sido alocado, evitando exceções de esgotamento de recursos e outros problemas.


Fontes: Interface Closeable Interface AutoCloseable