Descubra o que é, para que serve e como usar o Scanner em Java para ler dados oriundos do terminal ou de arquivos.
O Scanner em Java é uma classe utilizada para facilitar a leitura dos dados informados pelo usuário, como nome ou idade. Esse sistema simplifica a entrada das informações no modo console, sendo capaz de analisar letras, números e sinais.
Caso você não saiba, Java é uma linguagem de programação amplamente utilizada no desenvolvimento web, na criação de aplicativos e em sistemas empresariais, devido a sua robustez e estabilidade. Já uma classe em Java é um modelo empregado para definir um tipo de objeto, seus atributos e as ações que ele pode realizar.
Neste post vamos explicar o que é Scanner em Java, apresentar seus principais métodos e também mostrar exemplos práticos de como utilizá-la.

O que é a classe Scanner em Java?
A classe Scanner em Java é um modelo usado para analisar informações oriundas de diferentes fontes, como console e arquivos. Além disso, com ela, é possível trabalhar com tipos primitivos de uma maneira mais prática e otimizada.
Em Java, os tipos primitivos representam valores simples e não são objetos. Alguns dos principais são:
- int (inteiro).
- double (decimal).
- boolean (verdadeiro ou falso).
- char (caractere).
Definição e propósito
Esse sistema é utilizado para ler e interpretar dados da fonte especificada pelo usuário. Ele é capaz de reconhecer e processar diferentes tipos de dados, originários de fontes distintas, separando a entrada de textos em blocos.
A classe Scanner em Java foi desenvolvida após o lançamento do Java 5 com o intuito de facilitar a criação de softwares que dependem do recebimento de valores de variáveis através do console.
Pacote de origem e introdução na linguagem
A instância Scanner em Java pertence ao java.util
, um pacote de biblioteca padrão do Java que contém diferentes tipos de classes e interfaces.
Essa configuração é ideal para os sistemas que usam a linguagem de programação Java, pois ela é orientada a objetos. Isso significa que ela estrutura o código em classes e objetos, o que facilita a organização e a reutilização dos códigos usados.
Principais métodos da classe Scanner
Os métodos da instância scanner são comandos que você pode utilizar para ler e fazer avaliações simples de arquivos e entradas do teclado de maneira rápida e prática. Confira a seguir quais são os principais e descubra também quais são as funcionalidades de cada um deles.
Método | Funcionalidade |
close() | Encerra a leitura do Scanner e libera os recursos associados à leitura |
findInLine() | Procura a próxima ocorrência de um padrão na linha atual, ignorando delimitadores |
next() | Lê a próxima palavra até um espaço |
nextLine() | Lê toda a linha até a quebra (ENTER) |
nextInt() | Lê um número inteiro (int) |
nextDouble() | Lê um número com casas decimais (double) |
nextBoolean() | Lê verdadeiro ou falso |
nextFloat() | Lê um número decimal (float) |
nextLong() | Lê um número inteiro usando valores maiores que o tipo int |
hasNext() | Verifica se há mais dados para ler |
hasNextInt() | Checa se o próximo valor é um int |
match() | Retorna o resultado da pesquisa do último objeto Scanner |
radix() | Retorna a base numérica usada para análise de números |
skip() | Ignora a entrada até que o padrão especificado seja encontrado |
Diferenças entre next() e nextLine()
A diferença entre esses dois comandos é muito simples. Você deve usar o next() sempre que precisar ler apenas a próxima palavra. Já o nextLine() lê toda a linha até encontrar o ENTER.
Por isso, é importante saber que quando você usa os comandos nextInt() ou next() o ENTER fica na fila de entrada e pode impactar a ação do método nextLine(), caso ele seja utilizado em seguida.
Para evitar que isso aconteça, basta acrescentar uma camada extra ao comando, que ficará com a seguinte sintaxe: scanner.nextLine(). Ao fazer isso, a ferramenta será capaz de capturar todos os dados necessários.
Utilizando a classe Scanner na prática
Agora que você já conhece os principais métodos da instância Scanner, descubra como essa ferramenta pode capturar dados de diferentes fontes.
Leitura de dados do teclado
Uma das maneiras mais comuns de usar essa ferramenta é captando dados que são digitados no console. Nesse caso, o usuário digita as informações no terminal e o programa lê e usa esses materiais para executar uma ação.
Para capturar esses dados, é preciso conectar o Scanner ao terminal, utilizando a requisição System.in, e usar o método adequado para ler o tipo de informação que está sendo inserida. Uma vez que esse material é lido pelo programa, ele poderá ser usado em outras ações, como comparar e somar, por exemplo.
Leitura de arquivos e outras fontes
Além de ser capaz de extrair os dados do terminal, o Scanner também consegue ler informações de outras fontes, como arquivos de diferentes formatos, strings e fluxos de dados.
Para conseguir ler as informações contidas em um arquivo é necessário seguir o seguinte passo a passo:
- Criar um objeto que representa o arquivo no sistema (exemplo: File arquivo =
new File("dados.txt")
; - Em seguida, é preciso executar o método a seguir: Scanner scanner =
new Scanner (arquivo)
; - Para checar se ainda há linhas restantes digite o comando:
scanner.hasNextLine()
; - Caso o documento contenha mais dados, execute o método:
scanner.nextLine()
para a ferramenta ler a totalidade da próxima linha.
Se o arquivo que você deseja ler não estiver na mesma pasta do Scanner em Java, será necessário informar o caminho completo até o documento para que o programa possa acessá-lo e extrair as informações.
Tratamento de exceções com Scanner

Na classe Scanner em Java as exceções são erros que podem ocorrer durante a execução do programa. Se você ainda é um iniciante no uso dessa ferramenta, conheça agora as exceções mais comuns do Scanner:
FileNotFoundException
– acontece quando o usuário tenta abrir um arquivo que não existe.InputMismatchException
– ocorre quando a pessoa digita uma letra no local que o programa espera um número.NoSuchElementException
– essa exceção acontece quando o programa tenta ler um valor que não está mais disponível.
Lidando com InputMismatchException
e demais exceções
É possível resolver essas exceções utilizando um bloco try-catch
e alguns comandos. O bloco try é o espaço no qual você vai executar uma ação que pode dar errado. Já o catch captura o erro e evita que o programa quebre.
Veja abaixo qual é o comando indicado para lidar com cada tipo de exceção:
FileNotFoundException - catch (FileNotFoundException e).
InputMismatchException - catch (InputMismatchException e).
NoSuchElementException - catch (NoSuchElementException e).
Boas práticas para validação de entrada
Conheça agora algumas dicas de boa práticas para ter mais chances de ser bem-sucedido no tratamento das exceções:
- Sempre use o bloco
try-catch
para ler arquivos ou dados do teclado. - Evite deixar o programa quebrar usando mensagens como:
Exception in thread "main"
. - Forneça mensagens amigáveis ao usuário.
Tutorial: como utilizar a classe Scanner no Java
Depois de descobrir o que é e para que serve a instância Scanner no Java, chegou a hora de aprender a usar esse programa na prática. Para isso, confira o tutorial que preparamos a seguir.
Passo 1 – Importar a classe Scanner
O primeiro passo para usar essa ferramenta é importar a classe Scanner para o seu programa Java. Para fazer isso, basta usar o seguinte comando:
Java
import java.util.Scanner;
Passo 2 – Criar uma instância da classe Scanner
Em seguida, será necessário criar uma instância Scanner, essa ação permite que o programa leia os dados inseridos por meio do teclado. A requisição que você deverá usar nessa etapa é a seguinte:
Java
Scanner scanner = new Scanner(System.in);
Passo 3 – Ler diferentes tipos de dados
Agora, você vai precisar selecionar os métodos Scanner compatíveis com os tipos de dados que você deseja ler, como no exemplo a seguir:
Java
System.out.print("Digite seu nome: ");
String nome = scanner.nextLine();
System.out.print("Digite sua idade: ");
int idade = scanner.nextInt();
System.out.print("Digite seu salário: ");
double salario = scanner.nextDouble();
Passo 4 – Fechar o Scanner
Após finalizar a leitura, não se esqueça de fechar o Scanner para liberar espaço no sistema.
Java
scanner.close();

Conclusão
A classe Scanner em Java é a ferramenta ideal para quem precisa ler dados oriundos de diferentes fontes, como arquivos .txt e entradas do teclado. Além de ser fácil de usar, ela conta com vários métodos que otimizam seu uso e diminuem o tempo de execução.
Recomendações para aprofundar o aprendizado
Se você quer dominar essa ferramenta, tente usá-la sempre que possível para praticar seus métodos e formas de resolver eventuais exceções. Se possível, crie arquivos fictícios em diferentes formatos para ler no Scanner, pois isso vai auxiliar bastante no seu processo de aprendizado.
Para aprofundar ainda mais os seus conhecimentos em Java e também em outras linguagens de programação, confira outros artigos sobre esse tema no blog da HostGator: