Article image

MR

Marcos Ramos09/02/2024 14:48
Compartilhe

Funções em Java: Scanner

  • #Java

Java Scanner

Primeiramente o que é um scanner ?

Na década de 90, o scanner era um dispositivo de mesa utilizado para converter informações contidas em papel (documentos, fotos, etc) para arquivos digitais no computador.

image

Esse é um scanner no mundo real. Mas não é dele que iremos falar. Apesar de ter sua analogia, iremos falar da classe Scanner do Java.

Em livre tradução do inglês, um scanner é um dispositivo de examinar, realizar leitura ou monitorar algo.

Com isso já conseguimos ter alguma idéia da utilidade da classe Scanner na linguagem Java.

A classe Scanner:

Scanner é uma classe do pacote Java.Util, que já vem na instalação padrão do Java. Com ela nós podemos:

  • Realizar a leitura de dados do console.
  • Realizar a leitura de arquivos em disco.

Para utilizá-la, precisamos instanciá-la e após isso, teremos a nossa disposição uma variedade de métodos (funções) para utilizar em diversos tipos de contextos.

Escaneando a entrada de uma string no console:

Scanner sc = new Scanner(System.in);
System.out.print("Digite o seu nome completo: ");
String nome = sc.nexLine();
System.out.println("Você digitou: " + nome);
sc.close();
Digite o seu nome completo: John John Florence
Você digitou: John John Florence

Vamos aos detalhes:

Scanner sc = new Scanner(System.in);

Ao utilizarmos o `System.in`, estamos informando que iremos realizar a leitura do que digitarmos no teclado via console.

String nome = sc.nexLine();

O método `nextLine()` avança o scanner para a próxima linha e retorna a entrada de dados que foi digitada na linha anterior. No caso do código exemplo, foi digitado um nome e ele foi gravado na variável nome.

sc.close();

No final utilizamos `sc.close()` para finalizar o scanner.

Com isso nós conseguimos escanear a entrada de dados e reservarmos em uma variável no programa.

Fazendo a leitura a partir de um arquivo:

Podemos também utilizar Scanner para realizar a leitura de arquivos. Para isso utilizamos o seguinte código:

public class App {
  public static void main(String[] args) throws FileNotFoundException {

      Scanner sc = new Scanner( new File("lista-nomes.txt"));
      List<String> listaNomes = new ArrayList<>();
      int i = 0;

      while (sc.hasNextLine()) {
          listaNomes.add(sc.nextLine());
          System.out.println(listaNomes.get(i));
          i ++;
      }
      sc.close();
      
  }
}

Vamos novamente aos detalhes:

Scanner sc = new Scanner( new File("lista-nomes.txt"));

Dessa vez instanciamos a classe File e informamos o nome de um arquivo. Com isso nós conseguimos ler um arquivo que está no diretório do da aplicação.

while (sc.hasNextLine()) {

Aqui nós iteramos sobre a listagem de nomes contidas no arquivo através do while. hasNextLine() retorna verdadeiro sempre que houver uma próxima linha a ser lida pelo scanner.

listaNomes.add(sc.nextLine());

Gravamos o nome no ArrayList por cada linha percorrida pelo while

System.out.println(listaNomes.get(i));

Exibimos um por um na tela os nomes que foram obtidos do arquivo.

Ao final tivemos o seguinte resultado exibido no console:

image

Conclusão

Com isso concluímos a utilização da função Scanner do Java. Para maiores funcionalidades, utiliza a documentação da linguagem.

Referência:

https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html

Compartilhe
Comentários (0)