我在运行程序时遇到一些问题。无论何时,我尝试获取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);
}
}
答案 0 :(得分:0)
答案是
更改
Scanner fileInput = new Scanner("outputs.txt");
到
Scanner fileInput = new Scanner(new File ("outputs.txt"));