Programas típicos trabalham com dados que precisam ser inseridos e exibidos pelo usuário. Neste tutorial, vamos explorar como você pode processar entradas do usuário em Java e criar saídas de forma eficaz. Existem várias maneiras de coletar ou fornecer informações. Aqui, a distinção entre saídas na console e saídas de erro desempenha um papel importante. Você também aprenderá a ler dados de maneira eficiente, seja através da console ou de interfaces gráficas de usuário.
Principais descobertas
- Java oferece várias maneiras de lidar com entrada e saída de dados.
- É importante separar saídas e erros uns dos outros.
- O Scanner é uma ferramenta útil para ler entradas do usuário.
Saída básica com System.out
O primeiro passo ao trabalhar com saídas em Java é lidar com System.out, que representa a saída padrão. Com a classe PrintStream, que representa System.out, você pode enviar saídas para a console.
Para gerar uma saída de texto, você pode simplesmente usar System.out.print ou System.out.println. println termina a linha após a saída, enquanto print não faz isso. Portanto, se você quiser que a próxima saída ocorra na mesma linha, use print.

Você pode executar o programa da seguinte forma:
Essa saída será exibida na console, e você pode ajustar o programa para exibir mais informações.
Saídas de erro com System.err
Para saídas de erro, é aconselhável usar System.err. Isso oferece a vantagem de que os erros e as saídas regulares sejam claramente separados. Os erros podem ser destacados visualmente, por exemplo, usando uma cor diferente na console (frequentemente vermelho).
Quando ocorre um erro, você pode usar System.err.print ou System.err.println para exibir um erro específico:

Aqui está um exemplo de uma mensagem de erro:
A separação entre saídas regulares e mensagens de erro pode aumentar a legibilidade e a rastreabilidade das saídas em seu programa.
Entradas com System.in e o Scanner
Para receber entradas do usuário, usamos System.in. Neste caso, é recomendável usar a classe Scanner do pacote java.util. O Scanner simplifica a leitura de dados, pois reconhece automaticamente diferentes tipos de dados e retorna a entrada como uma string.
Primeiro, você deve importar o Scanner:

Em seguida, você pode criar uma instância do Scanner e passar System.in:
Agora você tem a oportunidade de ler entradas em seu programa.
Captura de entradas do usuário
Para obter dados de um usuário, você pode usar nextLine(). Isso permite capturar uma linha completa como string. Um exemplo típico seria a entrada da idade do usuário.
Aqui está um exemplo de entrada do usuário:

Neste exemplo, o usuário é solicitado a inserir sua idade, e o programa então retorna a informação inserida.
Interações do usuário com diálogos gráficos
Se você quiser usar uma interface gráfica do usuário (GUI), pode usar a classe JOptionPane do pacote javax.swing. Isso permite que você capture entradas em uma janela de diálogo padrão, o que pode ser um pouco mais amigável.

Isso exibe um diálogo gráfico onde o usuário pode inserir sua idade.
Validação das entradas do usuário
É importante validar as entradas que vêm do usuário. Você deve garantir que a idade esteja realmente em um formato aceitável, como um inteiro. Para isso, você pode tentar converter a string em um número e trabalhar com exceções.

A implementação dessas validações protege seu programa de entradas inesperadas.
Resumo – Otimização da entrada e saída em Java
Você agora aprendeu os conceitos básicos de entrada e saída em Java. A distinção entre saídas padrão e mensagens de erro é fundamental para criar clareza na comunicação do programa. Além disso, o uso do Scanner e a capacidade de implementar diálogos gráficos oferecem soluções flexíveis para entrada de dados.
Perguntas frequentes
Qual classe eu uso para a saída padrão?Você usa System.out para exibir saídas na janela do console.
Como posso exibir mensagens de erro?Use System.err para exibir mensagens de erro, separando-as das saídas regulares.
Como capturo entradas do usuário na console?O Scanner do java.util é ideal para capturar entradas do usuário de System.in.
Posso usar diálogos gráficos de entrada?Sim, através do JOptionPane do javax.swing você pode usar diálogos gráficos para entrada.
Eu preciso validar as entradas do usuário?Sim, validar as entradas é importante para evitar erros e entradas inesperadas.