2014-04-15 54 views
1

因此,我正在写一个程序,填充文件中的数据部分填充的数组,我需要知道文件中的行数,所以我可以使条件我的循环,所以没有一个界限的例外。所以,我创建了说的方法:in.hasNextLine()永远不会终止于Java

public static int lineFinder(String[] names) throws FileNotFoundException 
    { 
     Scanner in = new Scanner(new File("prog6_1.txt")); 
     int count = 0; 

     while(in.hasNextLine()) 
     { 
      count++; 
     } 
     return count; 
     } 

我的文件是这样的:

3459 KAIT伊丽莎白·布朗4.00

5623雷切尔杰西卡·史密斯3.45

9837托马斯·罗伯特·多伊3.73

1235 Riley Leigh Green 2.43

它永远不会终止,我不知道为什么,因为我在最后放了一个额外的行。有什么建议么?

回答

4

hasNextLine()方法不会将光标向前移动。你需要在循环中使用nextLine()方法来实现。

1

hasNextLine()只是检查下一行是否可用,它不会获取下一行,因为在验证下一行存在之后,您应该使用nextLine()。修改while循环,如下所示:

while(in.hasNextLine()) 
    { 
     in.nextLine(); 
     count++; 
    } 
0

hasNextLine()不前进光标(即,它不消耗线)。你的代码应该使用in.nextLine(),看起来像这样: