在while循环中正确使用BufferedReader.readLine()
所以我在将文本文件读入程序时遇到了问题。这是代码:
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得到任何错误,所以我很困惑。有人有主意吗?
回答:
您正在br.readLine()
循环中第二次调用。
因此,每次走动时,您最终要阅读 两 行。
以上是 在while循环中正确使用BufferedReader.readLine() 的全部内容, 来源链接: utcz.com/qa/423075.html