Sou novo na linguagem e ainda estou aprendendo portando o problema que estou tento pode ser bobo, mas não estou conseguindo resolve-lo sozinho.
Ai vai o código:
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
class ReadAndWrite {
public static void main(String args[])
throws FileNotFoundException {
Scanner diskScanner =
new Scanner(new File("rawData.txt"));
PrintStream diskWriter =
new PrintStream("cookedData.txt");
double unitPrice, quantity, total;
unitPrice = diskScanner.nextDouble();
quantity = diskScanner.nextInt();
total = unitPrice * quantity;
diskWriter.println(total);
}
}
Ele compila sem problema, mas da o seguinte erro ao executar:
--------------------Configuration: Chapter13_Listing02 - JDK version 1.7.0_03 - --------------------
Exception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextDouble(Scanner.java:2456)
at ReadAndWrite.main(ReadAndWrite.java:17)
Process completed.
Detalhes adicionais:
O arquivo rawData.txt está na mesma pasta do exemplo.
Uso o Jcreator LE para escrever os códigos.
Esse é o mesmo exemplo que vem com o livro (eu nem escrevi esse código, pois ele veio junto com uma pasta de exemplos para download no site do livro).
Peço desculpas pela duvida de novato e agradeço a todos que estiverem dispostos a me ajudar a solucionar o problema.
InputMismatchException significa que o dado que está no arquivo não corresponde ao que você pediu.
No caso, o erro ocorreu no nextDouble(), portanto, certifique-se que há um double lá no arquivo mesmo.
Se o erro era no nextDouble(), como indica a mensagem:
at java.util.Scanner.nextDouble(Scanner.java:2456)
at ReadAndWrite.main(ReadAndWrite.java:17)
Por que você achou que iria corrigi-lo alterando a linha do nextInt()?!?
Provavelmente o scanner está lendo as configurações regionais.
Tente alterar o separador de decimal de “.” para “,” - pois é assim que fazemos no Brasil.
Vai em que lugar exatamente no código? Vocês poderiam coloca-la no código do meu programa e mandar aqui? Eu tentei coloca-la em alguns lugares, mas não funcionou… Desculpem eu comecei a ver a linguagem a pouco tempo e sou muito lento com essas coisas.
--------------------Configuration: Chapter13_Listing02 - JDK version 1.7.0_03 - --------------------
Exception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextDouble(Scanner.java:2456)
at ReadAndWrite.main(ReadAndWrite.java:20)