在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

回到顶部