在 while 循环中正确使用 BufferedReader.readLine()
2022-09-01 17:54:22
因此,我在将文本文件读取到我的程序中时遇到问题。代码如下:
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 循环实现将不起作用。
为什么线路停在50点?我检查了文本文件,没有任何东西会挂掉它。while(br.readLine()!=null)
当我使用 while 循环时,我没有从 try-catch 中得到任何错误,所以我很困惑。有人有什么想法吗?