2014-04-15 61 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(),看起來像這樣: