[RESOLVIDO] Erro com entrada via teclado

3 respostas
G

Pessoal,

Ao compilar meu código ocorre o seguinte erro: "cap02ex02.java:14: warning: [deprecation] readLine() in java.io.DataInputStream has been deprecated s = dado.readLine();" O código é o seguinte:
// Criar uma classe que receba a quantidadde e o valor de 3 produtos no seguinte formato:
// Quantidade 1, valor 1, quantidade 2, valor2, quantidade 3, valor 3:
// Calcular e exibir esse valor na tela, q1 * v1 + q2 * v2 + q3 * v3:
// Exibir o valor total:
import java.io.*;
class cap02ex02 {
	public static void main (String args[]) {
		float total, q1, v1, q2, v2, q3, v3;
		DataInputStream dado;
		String s = " ";
		
		System.out.println("Digite a quantidade de arroz:");
		dado = new DataInputStream(System.in);
		s = dado.readLine();
		q1 = Float.parseFloat(s);
		
		System.out.println("Digite o valor do arroz:");
		dado = new DataInputStream(System.in);
		s = dado.readLine();
		v1 = Float.parseFloat(s);
		
		System.out.println("Digite o quantidade de feijo:");
		dado = new DataInputStream(System.in);
		s = dado.readLine();
		q2 = Float.parseFloat(s);
		
		System.out.println("Digite o valor do feijao:");
		dado = new DataInputStream(System.in);
		s = dado.readLine();
		v2 = Float.parseFloat(s);
		
		System.out.println("Digite a quantidade de sal:");
		dado = new DataInputStream(System.in);
		s = dado.readLine();
		q3 = Float.parseFloat(s);
		
		System.out.println("Digite o valor do sal:");
		dado = new DataInputStream(System.in);
		s = dado.readLine();
		v3 = Float.parseFloat(s);
		
		total = q1*v1 + q2*v2 + q3*v3;
		
		System.out.println("O valor total desses produtos : " + total + ".");
		
		System.exit(0);
	}
}

3 Respostas

Tiburcio_Mancha

Tenta assim:

Scanner sc  = new Scanner(System.in);
System.out.println("Digite um número");
double number = Double.parseDouble(sc.next());

System.out.println(number);
Trebloc

Isso não é um erro, é apenas um aviso de que você está usando um método depreciado (que está em desuso).

No caso, não se utiliza mais o readLine() de DataInputStream, mas sim o de Scanner (java.util), os métodos de um BufferedReader (java.io) ou outros.

Tente trocar por Scanner e veja se o aviso desaparece.

Dica: Outra coisa, evite ficar instanciando tantas vezes o objeto, isso é desperdício de memória. Basta instancia uma vez e usar quando quiser:

Scanner entrada = new Scanner(System.in);
System.out.println("Digite algo:");
String msg = entrada.readLine();
System.out.println("Você digitou: " + msg);

System.out.println("Digite outra coisa:");
msg = entrada.readLine();
System.out.println("Você digitou: " + msg);

...
G

Tiburcio e Trebloc,

Muito Obrigado. Funcionou!!!

E vou evitar instanciar várias vezes o mesmo objeto. Valeu pelo toque!

Abs,

Glauco.

Criado 1 de março de 2010
Ultima resposta 1 de mar. de 2010
Respostas 3
Participantes 3