Pessoal,
o metodo readInt(), para ler números do teclado, devo pegar de que classe do pacote java.io?
obrigada,
Roberta
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!!!