2014-02-05 3 views
0

Ошибка выполнения я получаю этоработает хорошо, когда я построить его, выдает сообщение об ошибке, когда я запускаю его

Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:840) at java.util.Scanner.next(Scanner.java:1461) at java.util.Scanner.nextInt(Scanner.java:2091) at java.util.Scanner.nextInt(Scanner.java:2050) at lab4b2.main(lab4b2.java:12)

Мой код

import java.util.*; 
import java.io.*; 
public class lab4b2 
{ 
    public static void main (String [] args) 
     throws IOException 
    { 
     Scanner fileIN = new Scanner(new File("lab4b2.txt")); 
     char unit; 
     double amount,conv; 
     unit = fileIN.next().charAt(0); 
     amount = fileIN.nextInt(); 
     switch (unit) 
     { 
      case 'p': conv = amount*4.9; 
       System.out.printf("%.2f pounds = %.2f newtons",amount,conv); 
       break; 
      case 'P': conv = amount*4.9; 
       System.out.printf("%f pounds = %f newtons",amount,conv); 
       break; 
      case 'f': conv = amount*0.30488; 
       System.out.printf("%f feet = %f meters",amount,conv); 
       break; 
      case 'F': conv = amount*0.30488; 
       System.out.printf("%f feet = %f meters",amount,conv); 
       break; 
      case 'm': conv = amount*1.61; 
       System.out.printf("%f miles = %f kilometers",amount,conv); 
       break; 
      case 'M': conv = amount*1.61; 
       System.out.printf("%f miles = %f kilometers",amount,conv); 
       break; 
      default: System.out.println("Please enter the possible units only."); 
       break; 
     } 
    } 
} 

В чем проблема? Это происходит только после нажатия кнопки. Я использую JCreator, если это поможет. Я считаю, что проблема находится где-то в printf, но я не вижу разумных ответов на эту проблему. Мой входной файл М 3,106 Р 125 Р 120 Р 7.2 F 56 М 100

+1

Что в lab4b2.txt? – Travis

ответ

1

ошибка происходит на этой линии:

amount = fileIN.nextInt(); 

первое число в файле не int, поэтому он вызывает InputMismatchException. Предоставьте больше информации о том, чего вы пытаетесь достичь, для лучшего ответа.

+0

Спасибо! Я должен был заметить что-то подобное – haasbury

0

Это звучит как чья-то домашняя работа или школьный проект. Тем не менее, ваша проблема находится в строке 12. Вы сканируете для int, но файл данных имеет 3.106, что не является int.

+0

Спасибо! Вы правы в своем предположении о домашнем задании или школьном проекте. – haasbury

0

Я считаю, что ошибка здесь:

сумма = fileIN.nextInt();

Первое число, которое вы читаете, 3.106, которое не является int. Вы, вероятно, хотите, чтобы сделать следующие изменения: выход

float amount, conv; 
amount = fileIN.nextFloat(); 

Ошибка в Java отлично подходит для прогулки вас на проблемной линии. Это:

java.util.Scanner.nextInt(Scanner.java:2050) at lab4b2.main(lab4b2.java:12) 

указывает, что ошибка происходит в filelab4b.java, строка 12.

+0

Спасибо, что помогли мне понять, что беспорядок на дне! – haasbury

Смежные вопросы