Scanner sur fichier texte hasNext() est infini

Je suis en train d'écrire un programme simple en Java et il nécessite la lecture des données à partir d'un fichier texte. Cependant, je rencontre des problèmes de comptage de lignes. Le problème semble assez générique pour une simple recherche sur Google mais je ne peut pas encore être à la recherche de bonnes choses.

Le livre que je suis en train d'apprendre à partir suggère que de compter le nombre de lignes dans un fichier texte, vous devez faire quelque chose comme ceci:

public static int[] sampleDataArray(String inputFile) throws IOException
{
        File file = new File(inputFile);
        Scanner inFile = new Scanner(file);

        int count = 0;

        while (inFile.hasNext())
            count++;

        int[] numbersArray = new int[count];

        inFile.reset();
        for (int i = 0; i < count; i++)
        {
            numbersArray[i] = inFile.nextInt();
        }

        inFile.close();
        return numbersArray;
}

Il me semble que la while (inFile.hasNext()) ligne est le problème. Je pense que le hasNext() est en cours d'exécution à l'infini. Le fichier de données que je suis en utilisant le code a certainement un nombre limité de lignes de données.

Que dois-je faire?

Remplacer int[] par List<Integer>. De cette façon, vous n'avez pas besoin de connaître la taille à l'avance et il vous permet d'économiser de l'un plus de boucle.

OriginalL'auteur AvaMango | 2011-12-02