Question

D'accord, donc je suis en train d'écrire une application Java pour importer un fichier csv et la boucle puis à travers les résultats, et les charger dans un tableau. J'importe correctement le fichier, car il ne pas par une exception. Mes questions est que lorsque je tente de compter le nombre d'enregistrements dans le FileInputStream Je suis pris au piège dans une boucle infinie. Quel pourrait être le problème ici. Heres le code:

Ceci est ma classe avec une méthode principale qui les appels sont ():

public void go() {
    pop = new PopularNames();
    popGui = new PopularNamesGui();
    String file = popGui.userInput("Enter the correct name of a file:");
    pop.setInputStream(file);
    pop.getNumberOfNames();
}

Ceci est la PopularNames de classe (pop), et dans la méthode ci-dessous, je suis en train de l'fluxEntrée var à une nouvelle FileInputStream. Le nom du fichier est fourni par l'utilisateur.

public void setInputStream(String aInputStream) {
    try {
        inputStream = new Scanner(new FileInputStream(aInputStream));
    } catch (FileNotFoundException e) {
        System.out.println("The file was not found.");
        System.exit(0);
    }
}

Cette méthode est la difficulté. Là où je suis simplement Boucler dans FileInputStream et en comptant le nombre d'enregistrements:

public void getNumberOfNames() {
    while (this.inputStream.hasNext()) {
        fileDataRows++;
    }
}
Était-ce utile?

La solution

public void getNumberOfNames() {   
  while (this.inputStream.hasNext()) {   
     inputStream.nextLine(); // Need to read it so that we can go to next line if any
     fileDataRows++;    
  } 
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top