DEV Community

Entrada do console com o uso de fluxos de caracteres

Para ler dados do console em Java de forma eficiente e adequada a caracteres (ideal para internacionalização), é recomendado utilizar fluxos de caracteres em vez de fluxos de bytes. Como o System.in é um fluxo de bytes, ele deve ser encapsulado em um Reader. A classe recomendada para essa tarefa é o BufferedReader, que utiliza o InputStreamReader para converter bytes em caracteres.

O processo funciona da seguinte forma:

Crie um InputStreamReader associado ao System.in:

InputStreamReader fluxoEntrada = new InputStreamReader(System.in);

Enter fullscreen mode Exit fullscreen mode

Em seguida, passe este InputStreamReader ao construtor de BufferedReader:

BufferedReader br = new BufferedReader(fluxoEntrada);

Enter fullscreen mode Exit fullscreen mode

Dessa forma, br é um fluxo de entrada baseado em caracteres conectado ao console.

Métodos para leitura de caracteres e strings

  • read(): Lê um único caractere Unicode e retorna -1 ao final do fluxo.
  • readLine(): Lê uma linha completa como uma String até o usuário pressionar ENTER, retornando null no final do fluxo.

Exemplo de uso:
O código a seguir lê caracteres do console até o caractere . ser digitado:

char c;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter characters, period to quit.");
do {
  c = (char) br.read();
  System.out.println(c);
} while(c != '.');

Enter fullscreen mode Exit fullscreen mode

Outro exemplo permite ler linhas de texto até a palavra "stop" ser inserida:

String str;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter lines of text.");
System.out.println("Enter 'stop' to quit.");
do {
  str = br.readLine();
  System.out.println(str);
} while(!str.equals("stop"));

Enter fullscreen mode Exit fullscreen mode

Essas abordagens tornam a entrada de dados via teclado mais conveniente e estruturada, especialmente para programas que requerem suporte a diferentes codificações de caracteres.

Top comments (1)

Collapse
 
programmerraja profile image
Boopathi

This is a great breakdown of how to use character streams for console input in Java! The examples are clear and helpful for understanding how to read both single characters and entire lines.