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.
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:
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