找到下面提到的错误导致程序无法运行时遇到问题

时间:2017-05-31 02:37:42

标签: java

我在运行程序时遇到一些问题。无论何时,我尝试获取java.util.InputMismatchException。 在搜索之后,我注意到当我尝试获取数据但下一个数据不是那种格式时(以初学者的方式)。 我已多次尝试查找导致错误的原因,但我似乎无法找到它:/

对于那些发现这是草率的人,因为阵列没有被使用。我不被允许将它们用于此特定任务。

import java.util.Scanner;
import java.io.*;

public class Huang_Grading
{
    //Global variables
    private static int holdMinStudentID;
    private static int holdMinEnhStudentID;
    private static int holdMaxStudentID;
    private static int holdMaxEnhStudentID;
    private static int holdModeStudentID;
    private static int holdModeEnhStudentID;

    /**Main method to pull data from*/
    public static void main(String[] args) throws IOException
    {
        //Set up input file
        File inputFile = new File("gradeInput.txt");

        validateFile(inputFile);
        validateData(inputFile);
        printData();
    }

    /**Read in file location, give error message if file does not exist
       Also, save valid numbers to an output file*/

    /**Compute and return mean of all grades*/
    public static double mean(Boolean gradeType) throws IOException
    {
        Scanner fileInput = new Scanner("outputs.txt");

        //Declare variables
        double finalMean = 000.00;
        double earnedGrade;
        int enhancedGrade;
        double totalEnhancedGrade = 0;
        double totalEarnedGrade = 0;
        int studentID;
        int lines = 0;

        //Mean grade
        while(fileInput.hasNext())
        {
            studentID = fileInput.nextInt();
            enhancedGrade = fileInput.nextInt(); 
            earnedGrade = fileInput.nextDouble();

            if(gradeType == false)
            {
                totalEarnedGrade = totalEarnedGrade + earnedGrade;
            }
            if(gradeType == true)
            {
                totalEarnedGrade = totalEarnedGrade + earnedGrade;
                totalEnhancedGrade = totalEnhancedGrade + enhancedGrade;
            }
            lines++;
            if(gradeType == false)
            {
                finalMean = totalEarnedGrade/lines;
            }
            if(gradeType == true)
            {
                finalMean = (totalEnhancedGrade + totalEarnedGrade)/lines;
            }
        }
        fileInput.close();
        return finalMean;
    }

    /**Compute and return minimum/maximum of all grades*/

    /**Print out results*/
    public static void printData() throws IOException
    {
        //Declare variables
        Boolean earned = false;
        Boolean enhanced = true;

        double meanEarnedGrade = mean(earned);
        double meanEnhancedGrade = mean(enhanced);

        System.out.printf("%25s%7.2f", "Mean Earned Grade:\n", meanEarnedGrade);
        System.out.printf("%25s%7.2f", "Mean Enhanced Grade:\n", meanEnhancedGrade);
    }
}

error

outputs.txt

1 个答案:

答案 0 :(得分:0)

答案是

更改

Scanner fileInput = new Scanner("outputs.txt");

Scanner fileInput = new Scanner(new File ("outputs.txt"));