1

Java コードに少し問題があります。テキスト ファイルからの入力行を許可するオブジェクト配列を作成しようとしています。

これは私のコードです:

code withheld, solution found

これは明らかに、メソッドから返されたサイズでオブジェクト配列を初期化します。

ファイル「songFile」から各行を読み取るループを作成しようとしましたが、エラーが返されました。

ループのコードは次のとおりです。

code withheld, solution found

getLineAmt メソッドのコードは次のとおりです。

code withheld, solution found
4

3 に答える 3

1

getLineAmt(Scanner songFile)数をカウントするときに、メソッドがファイルを消費しています。メソッドが戻ると、Scannerすでにファイルが読み取られており、最後に達しています。

これを解決する 1 つの方法Listは、配列の代わりにオブジェクトを使用することです。これにより、事前にサイズやファイルを知る必要がなくなります。

List<Song> songList = new ArrayList<Song>();

while(songFile.hasNextLine()) {
    songList.add(new Song(songFile.nextLine()));
}
于 2013-10-22T04:28:38.417 に答える
0

曲ファイルの行を数えているので、ストリームの最後にいるので、 nextLine() を呼び出すと行がありません。ArrayList<Song>配列の代わりに an を使用するSong[],と、行を数える必要はまったくありません。

于 2013-10-22T04:28:38.667 に答える