所以我在将文本文件读入我的程序时遇到问题。这是代码:
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 中得到任何错误,所以我很难过。有人有想法么?