さて、csv ファイルをインポートし、結果をループして配列にロードする Java アプリケーションを作成しています。例外を介していないため、ファイルを正しくインポートしています。私の問題は、FileInputStream 内のレコード数をカウントしようとすると、無限ループに陥ることです。ここで何が問題になる可能性がありますか。コードは次のとおりです。
これは、go() を呼び出す Main メソッドを持つ私のクラスです。
public void go() {
pop = new PopularNames();
popGui = new PopularNamesGui();
String file = popGui.userInput("Enter the correct name of a file:");
pop.setInputStream(file);
pop.getNumberOfNames();
}
これはクラス PopularNames (pop) です。以下のメソッドでは、inputStream 変数を新しい FileINputStream に設定しています。ファイル名はユーザーが指定します。
public void setInputStream(String aInputStream) {
try {
inputStream = new Scanner(new FileInputStream(aInputStream));
} catch (FileNotFoundException e) {
System.out.println("The file was not found.");
System.exit(0);
}
}
これがトラブルの方法です。FileInputStream を単純にループして、レコード数を数えているところ:
public void getNumberOfNames() {
while (this.inputStream.hasNext()) {
fileDataRows++;
}
}