método readInt()

Pessoal,
o metodo readInt(), para ler números do teclado, devo pegar de que classe do pacote java.io?

obrigada,
Roberta

meu código:

[quote=tucamefe]
public static void main(String[] args) throws java.io.IOException {
do{
System.out.println(“Controle de Estoque\n”);
System.out.println(" 1 - Controle de Fornecedor");
System.out.println(" 2 - Controle de Produto");
System.out.println(" 3 - Sair");
System.out.print("Digite a opção: ");
DataInputStream io = new DataInputStream(System.in);
int opcao = 0;
opcao = io.readInt();
switch(opcao){
case 1:
controleDeFornecedor();
break;
case 2:
controleDeProduto();
break;
case 3:
break;
default:System.out.println(“Opção Inválida\n”);
};
}while(true);

}[/quote]

DataInputStream, como você já está usando.

mas ele está dando erro na execução …
assim ó …

java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:448)
at Gui.ProgramaTeste.main(ProgramaTeste.java:161)
Exception in thread “main”

justamente o erro que ele aponta é no => opcao = io.readInt(); :?

readInt não serve para ler inteiros do teclado. Ele serve para ler 4 bytes de um arquivo binário (DataInputStream).
Para ler algo do teclado, use readLine (da classe BufferedReader) e Integer.parseInt.
Em muitos lugares onde se ensina Java, os professores costumam dar uma classe “enlatada” que já faz isso para você, em vez de você ter de fazer algo como

BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
String line = br.readLine();

Isso é realmente absurdo em Java.

meu programa ta assim …

public static void main(String[] args){
BufferedReader keyboardInput;
int opcao = 0;
String strLinha = “0”;
try{
System.out.println(“Controle de Estoque\n”);
System.out.println(" 1 - Controle de Fornecedor");
System.out.println(" 2 - Controle de Produto");
System.out.println(" 3 - Sair");
System.out.println("Digite a opção: ");
keyboardInput = new BufferedReader (new InputStreamReader (System.in));
strLinha = keyboardInput.readLine();
opcao = Integer.parseInt(strLinha);
switch(opcao){
case 1:
controleDeFornecedor();
break;
case 2:
controleDeProduto();
break;
case 3:
break;

	default:System.out.println("Opção Inválida\n");
	};
}catch (IOException e){
                System.out.println("Houve Erro de Leitura.");
            }catch (NumberFormatException e){
                System.out.println("Houve erro na conversão, digite apenas caracteres Numéricos.");
            }	
}

olha só como ele executa! o que é isso?

init:
deps-jar:
compile:
run:
Controle de Estoque

1 - Controle de Fornecedor
2 - Controle de Produto
3 - Sair
Digite a opção:
Houve erro na conversão, digite apenas caracteres Numéricos.
BUILD SUCCESSFUL (total time: 1 second)

ELE EXECUTA DIRETO SEM ESPERAR QUE EU digite alguma coisa!!!