2014-02-05 45 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页 ˚F120 P 7.2 ˚F56 TM M 100

+1

是什么在lab4b2.txt? – Travis

回答

1

的错误发生在这条线:

amount = fileIN.nextInt(); 

在文件中的第一个数字是不一个int所以它导致InputMismatchException。提供更多信息,了解您想要达到更好的答案。

+0

谢谢!我应该注意到这样的东西 – haasbury

0

这听起来像某人的作业或学校项目。也就是说,你的问题在第12行。你正在扫描一个int,但数据文件有3.106,这不是一个int。

+0

谢谢!你对家庭作业或学校项目的假设是正确的。 – haasbury

0

我相信错误在这里:

amount = fileIN.nextInt();

您读取的第一个数字是3.106,它不是一个整数。您可能想要进行以下更改:

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

相关问题