✅ Read and Write Data from the Console

No Java, você pode interagir com o console usando a classe Scanner para ler entradas e a classe System.out para escrever saídas.

1. Escrever no Console

Para escrever no console, o método mais comum é o System.out.println(), que imprime uma linha de texto seguida de uma nova linha.

Exemplo:

public class ConsoleEscrita {
public static void main(String[] args) {
System.out.println("Olá, Mundo!");
System.out.print("Digite seu nome: ");
}
}
  • System.out.println() imprime texto seguido de uma quebra de linha.
  • System.out.print() imprime o texto sem adicionar uma quebra de linha.

2. Ler do Console com Scanner

A classe Scanner é utilizada para ler entradas de diferentes fontes, como o teclado. Para ler dados do console, usamos o método nextLine() para strings, nextInt() para inteiros, nextDouble() para números decimais, entre outros.

Exemplo:

import java.util.Scanner;

public class ConsoleLeitura {
public static void main(String[] args) {
// Criação do scanner para ler a entrada do console
Scanner scanner = new Scanner(System.in);

// Lendo o nome do usuário
System.out.print("Digite seu nome: ");
String nome = scanner.nextLine();

// Lendo a idade do usuário
System.out.print("Digite sua idade: ");
int idade = scanner.nextInt();

// Imprimindo os dados informados
System.out.println("Nome: " + nome);
System.out.println("Idade: " + idade);

// Fechando o scanner para liberar os recursos
scanner.close();
}
}

🧠 Detalhes sobre a Classe Scanner:

  • Métodos úteis:
    • nextLine(): Lê uma linha inteira de texto.
    • next(): Lê uma palavra (até o primeiro espaço).
    • nextInt(): Lê um número inteiro.
    • nextDouble(): Lê um número decimal.
    • hasNext(): Verifica se há mais tokens de entrada disponíveis.
  • Fechar o Scanner: É importante fechar o Scanner após o uso para liberar recursos. Normalmente, usamos scanner.close() para isso. No entanto, não feche o Scanner se você estiver lendo da entrada padrão (System.in), pois ele também fecha o fluxo de entrada padrão, tornando-o inacessível em outras partes do programa.

3. Exemplo Completo de Leitura e Escrita com Scanner

Vamos fazer um programa simples para ler e escrever dados do console:

import java.util.Scanner;

public class LeituraEscritaConsole {
    public static void main(String[] args) {
        // Criando um Scanner para capturar a entrada do console
        Scanner scanner = new Scanner(System.in);

        // Escrevendo no console
        System.out.println("Bem-vindo ao nosso sistema!");

        // Lendo o nome do usuário
        System.out.print("Por favor, insira seu nome: ");
        String nome = scanner.nextLine();

        // Lendo a idade do usuário
        System.out.print("Quantos anos você tem? ");
        int idade = scanner.nextInt();

        // Escrevendo a resposta no console
        System.out.println("Olá, " + nome + "! Você tem " + idade + " anos.");
        
        // Fechando o scanner para liberar recursos
        scanner.close();
    }
}

Explicação:

  1. O programa solicita o nome e a idade do usuário.
  2. O nome é lido usando nextLine() (já que o nome pode ter espaços).
  3. A idade é lida usando nextInt().
  4. O programa imprime o nome e a idade na tela.
  5. O Scanner é fechado para liberar recursos.

🧪 Quiz – 5 Questões Rápidas

1. Qual método é usado para ler uma linha de texto do console com a classe Scanner?
A) nextLine()
B) next()
C) readLine()
D) inputLine()


2. Qual método da classe System.out imprime texto sem adicionar uma quebra de linha?
A) println()
B) print()
C) write()
D) flush()


3. Qual é a principal razão para fechar um Scanner após o uso?
A) Para evitar erros no código
B) Para liberar recursos do sistema
C) Para impedir que o programa continue a aceitar entradas
D) Para evitar problemas de desempenho


4. O que acontece se você não chamar scanner.close() ao usar o Scanner?
A) O programa não funcionará corretamente.
B) O fluxo de entrada do console será fechado automaticamente.
C) Você pode acabar consumindo mais recursos do sistema do que o necessário.
D) Nada, o Scanner será fechado automaticamente quando o programa terminar.


5. Qual método da classe Scanner você usaria para ler um número inteiro?
A) nextInt()
B) nextLine()
C) next()
D) nextDouble()


Gabarito Comentado

  1. AnextLine() lê uma linha inteira de texto, o que é adequado para capturar nomes completos.
  2. Bprint() imprime texto sem adicionar uma nova linha, enquanto println() imprime com uma quebra de linha.
  3. B – Fechar o Scanner é importante para liberar recursos do sistema, especialmente quando você está lidando com streams ou IO.
  4. C – Se você não fechar o Scanner, o recurso de entrada (como o teclado) pode continuar sendo utilizado desnecessariamente, consumindo recursos do sistema.
  5. AnextInt() é usado para ler números inteiros.