申し訳ありません。そこで、Javaアプリケーションを作成して、csvファイルをインポートし、結果をループして配列にロードします。例外を通さないため、ファイルを正しくインポートしています。私の問題は、FileInputStreamのレコード数を数えようとすると、無限ループに閉じ込められてしまうことです。ここで何が問題になるか。 HERESにコードは:FileInputStreamをループするときの無限ループ
これは()に行く呼び出すMainメソッドで私のクラスである:これはクラスPopularNames(ポップ)である
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();
}
、および下記の方法で私がためのInputStreamのVARを設定しています新しい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++;
}
}
を実際に 'Scanner'何かの名前' inputStream'を使うのは悪い考えです。それは、あなたがしばらくの間宣言を見ないと、実際の 'InputStream'で有効でないメソッド呼び出しを見ていると非常に混乱します。同様に 'aInputStream'は実際には' filename'かそれに類するもののように聞こえます。 –
Jonが言ったこと(+1)はありますが、わかりやすい命名基準に従わないと「**本当に**悪い考えです」と言います。 – Bohemian