そのため、テキスト ファイルをプログラムに読み込む際に問題が発生しています。コードは次のとおりです。
try {
InputStream fis = new FileInputStream(targetsFile);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
//while(br.readLine()!=null){
for (int i = 0; i < 100; i++) {
String[] words = br.readLine().split(" ");
int targetX = Integer.parseInt(words[0]);
int targetY = Integer.parseInt(words[1]);
int targetW = Integer.parseInt(words[2]);
int targetH = Integer.parseInt(words[3]);
int targetHits = Integer.parseInt(words[4]);
Target a = new Target(targetX, targetY, targetW, targetH, targetHits);
targets.add(a);
}
br.close();
} catch (Exception e) {
System.err.println("Error: Target File Cannot Be Read");
}
私が読んでいるファイルは100行の引数です。for ループを使用すると、完全に機能します。while ステートメント (for ループの上でコメントアウトされたもの) を使用すると、50 で停止します。ユーザーが任意の行数のファイルを使用してプログラムを実行できる可能性があるため、現在の for ループの実装は失敗します。動作しません。
while(br.readLine()!=null)
ラインが 50 で止まるのはなぜですか? テキスト ファイルを確認しましたが、ハングアップするものはありません。
while ループを使用すると、try-catch からエラーが発生しないため、困惑しています。誰にもアイデアはありますか?