在Java中正确使用Scanner.hasNextLine?

时间:2016-11-14 15:03:03

标签: java

我目前正在为我的班级开发一个项目,我必须在其中对数组进行排序,该数组是文本文件中的数字。我创建了一个阅读器,看看我在.txt文件中有多少值,所以我可以定义我的数组大小,但我的while()语句似乎被打破了,并且在使用.hasNextLine时进入一个永无止境的循环。这是我的代码:

    File unsorted = new File("unsorted.txt");

    int j = 0;//Counter for the amount of slots in the array

    System.out.println("Executing file reading...");

    try
    {

        Scanner input = new Scanner(unsorted);

        while(input.hasNextLine()){

            j++;//Scanner to count the length of the array

            System.out.println(j);

        }

        input.close();

        System.out.println("The file has " + j + " lines.");

    }
    catch (IOException ex){

        System.out.printf("ERROR: Could not read file 'unsorted.txt'", ex);

    }

    System.out.println("File read.");

my {}之后我的打印行没有打印,相反,当我在while()循环中有J打印时,它会永远继续。该文件目前有7个值,所有数字。

1 个答案:

答案 0 :(得分:1)

当您致电nextLine()时,hasNextLine()方法的值只会更改 - 只有更改的机会。 nextLine()方法为您提供了该行的内容,并使扫描仪前进了一行。