método readInt()

5 respostas
tucamefe

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

obrigada,
Roberta

5 Respostas

tucamefe

meu código:

<blockquote><div class="quote-author">tucamefe:</div>

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);
}</blockquote>
_fs

DataInputStream, como você já está usando.

tucamefe

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(); :?

T

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.

tucamefe

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!!!

Criado 29 de março de 2005
Ultima resposta 29 de mar. de 2005
Respostas 5
Participantes 3