【发布时间】:2012-11-04 13:01:40
【问题描述】:
所以我在将文本文件读入我的程序时遇到了问题。代码如下:
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 中得到任何错误,所以我很难过。有人有什么想法吗?
【问题讨论】:
标签: java bufferedreader