Pergunta

Como fazer para ler um inteiro?

Resposta

A utilização direta do método System.in.read() é muito inconveniente e não oferece nenhuma facilidade para o programador. Isto é uma clara indicação que o esforço dispendido para a criação do Java direcionou-se para as aplicações gráficas. Ainda assim a leitura de inteiros pode ser facilitada através do método sugerido abaixo, incorporado de forma estática a uma classe Console que sugerimos:

// Console
import java.io.*;

public final class Console {

  public static int readInteger() {
    try {
      BufferedReader br = 
        new BufferedReader(new InputStreamReader(System.in));
      String s = br.readLine();
      return Integer.parseInt(s);
    } catch (IOException e) {
      return 0;
    } catch (NumberFormatException e) {
      return 0;
    }
  }
}

Para utilizar este método observe o programa abaixo:

// ConsoleTest.java
public class ConsoleTest {

  public static final void main(String args[]){
    System.out.print("Forneca um numero inteiro: ");
    int inteiro = Console.readInteger();
    System.out.println("Numero Fornecido: " + inteiro);
  }
}

Para compilar o exemplo digite:

javac ConsoleTest

A classe Console é automaticamente compilada desde que presente no mesmo diretório da classe ConsoleTest. Para executar o programa:

java ConsoleTest