Бесконечный цикл при цикле через FileInputStream - PullRequest
0 голосов
/ 18 октября 2011

Хорошо, поэтому я пишу Java-приложение для импорта файла CSV, а затем перебираю результаты и загружаю их в массив.Я импортирую файл правильно, потому что это не происходит через исключение.Моя проблема в том, что когда я пытаюсь подсчитать количество записей в FileInputStream, я попадаю в бесконечный цикл.В чем может быть проблема здесь.Вот код:

Это мой класс с методом Main, который вызывает go ():

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();
}

Это класс PopularNames (pop), и в приведенном ниже методе я устанавливаюinputStream var для нового FileINputStream.Имя файла предоставляется пользователем.

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);
    }
}

Это метод устранения неполадок.Где я просто перебираю FileInputStream и подсчитываю количество записей:

public void getNumberOfNames() {
    while (this.inputStream.hasNext()) {
        fileDataRows++;
    }
}

1 Ответ

6 голосов
/ 18 октября 2011
public void getNumberOfNames() {   
  while (this.inputStream.hasNext()) {   
     inputStream.nextLine(); // Need to read it so that we can go to next line if any
     fileDataRows++;    
  } 
}
...