そのため、クラスのコードに取り組んでおり、何が問題なのかわかりません。コードがコンパイルされ、探しているファイルを入力すると、次のメッセージが表示されます。
Enter the name of the file: FanData.txt
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at FanDriver.fillArray(FanDriver.java:76)
at FanDriver.main(FanDriver.java:35)
何かキーを押すと続行します 。. .
コンパイラとして TextPad を使用しており、テキスト ファイルはプロジェクト内にあります。以下は私が書いたコードです(引用符で呼び出されているメソッドは後で行う必要があるため無視してください):
import java.io.*;
import java.util.Scanner;
public class FanDriver
{
private static Scanner keyboard = new Scanner(System.in);
public static void main(String args[]) throws IOException
{
// Constant for the amount of elements of the array
final int MAXSIZE = 100;
// Declaring variables
int amountFans = 0;
// Declaring and initializing our array of fans
Fan[] fans = new Fan[MAXSIZE];
// Calling all of our methods
amountFans = fillArray(fans, MAXSIZE);
/**
listFanData(fans, amountFans);
bubbleSortByAge(fans, amountFans);
listFanData(fans, amountFans);
bubbleSortByFan(fans, amountFans);
listFanData(fans, amountFans);
searchByAge(fans, amountFans);
searchByFan(fans, amountFans);
*/
}
public static int fillArray(Fan[] array, int MAXSIZE) throws IOException
{
// Declaring variables
int counter = 0;
int age;
String name;
// Getting the file name
System.out.print("\nEnter the name of the file: ");
String fileName = keyboard.nextLine();
// Opening the file
File file = new File(fileName);
Scanner inputFile = new Scanner(file);
// Making sure the file was successfully opened
if (!file.exists())
{
System.out.println("\nERROR: FILE DOESN'T EXIST. CLOSING PROGRAM NOW.");
// Exiting the program
System.exit(0);
}
// Reading all of the amounts from the file
while (inputFile.hasNext() && counter < MAXSIZE)
{
name = inputFile.nextLine();
age = inputFile.nextInt();
array[counter] = new Fan(name, age);
// Adding to our counter
counter = counter + 1;
}
//Closing file
inputFile.close();
return counter;
}
}
Fan クラスのコードはなく、クラス自体だけです。取得するファイルは FanData.txt ファイルで、次のようになります。
クリス・P・クリーム 5 スコット・フリー 9 ルー・テナント 3 トリッシュ・フィッシュ 12 エラ・メントリー 4 ホリー・デイ 3 ロビン・デクレードル 12 アネット・ファニセロ 4 エルモ 7 グローバー 3 ビッグ・バード 9 バート 7 アーニー 3 グローバー 9
テキスト ファイルは行単位です。1 行が名前で、次が番号です。ここで正しくフォーマットする方法がわかりません。どんな助けでも大歓迎です。