Por favor, ao postar tópicos, deixe marcações para coisas úteis como [Resolvido] ou o nome de alguma API específica relevante para o problema.
Evite marcar com o óbvio como [Ajuda], [Socorro], [Urgente] ou [Dúvida].
ViniGodoy
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.
D
destrogabriel
Obrigado pelo aviso, mas problema ainda persiste.
Fiz a seguinte alteração.
Continua compilando sem problema, mas ao executar ocorre o mesmo erro. Alguma outra ideia?
ViniGodoy
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.
Ou então, use o comando
diskScanner.useLocale(Locale.US);
Logo após criar seu Scanner.
M
mozena
Olá amigo, boa noite !!
Seu código está correto, porém você precisa se atentar apenas a um detalhe.
Seu sistema operacional provavelmente está rodando com o idioma (Locale) em português. Ou seja, o comando “nextDouble()” espera um valor com virgula.
Para seu código funcionar é só alterar o padrão do Locale para US ou aplicar virgulas nos valores recuperados.
diskScanner.useLocale(Locale.US);
Abraços,
Felipe Mozena
D
destrogabriel
Essa linha:
diskScanner.useLocale(Locale.US);
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.
Obrigado.
ViniGodoy
Como falei, use logo depois de criar seu scanner:
importjava.util.Locale;//Não esqueça de dar importimportjava.util.Scanner;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.PrintStream;classReadAndWrite{publicstaticvoidmain(Stringargs[])throwsFileNotFoundException{ScannerdiskScanner=newScanner(newFile("rawData.txt"));diskScanner.useLocale(Locale.US);//Use aqui.PrintStreamdiskWriter=newPrintStream("cookedData.txt");doubleunitPrice,quantity,total;unitPrice=diskScanner.nextDouble();quantity=diskScanner.nextDouble();total=unitPrice*quantity;diskWriter.println(total);}}