Мой класс сканера не читает следующую строку из файла .txt - PullRequest
0 голосов
/ 18 августа 2011

Я пытаюсь прочитать текстовый файл, который выглядит следующим образом

0,-16,-4,12,10,4,-14,8,44,8,8,12,-4 
1,-16,-4,12,10,4,-14,6,43,10,10,12,-4
2,-16,-6,10,11,2,-13,4,43,10,11,12,-4
3,-16,-6,10,11,2,-13,6,43,10,11,11,-4
4,-16,-6,10,11,2,-13,6,42,8,10,10,-4

Однако я могу только к первой строке, затем она останавливается, я использую функцию hasNextInt в цикле for, и она достигает конца первой строки, а затем hasNextInt = null. Какой метод я могу использовать, чтобы продолжить чтение в следующей строке?

Заранее спасибо за любую помощь, которую вы можете оказать мне.

Вот код:

public final static int numChannels = 12;   // the data is stored in 12 channels, one for each lead
public final static int numSamples = 500*6; //500 = fs so *6 for 6 seconds of data
public File file;
private Scanner scanner;
short [] [] ecg = new short [numChannels] [numSamples];

 public ECGFilereader (String fname) throws FileNotFoundException 
 {
    File file = new File(Environment.getExternalStorageDirectory() +"/ecg.txt");    

    scanner = new Scanner(file);

    scanner.useDelimiter(",");

}
public boolean ReadFile(Waveform[] waves) // sorts data into and array of an array (12 channels each containing 3000 samples)
{
    for (int m=0; m<numSamples && scanner.hasNextInt(); m++)
    {
        String x = scanner.next();
        for (int chan = 0; chan<numChannels && scanner.hasNextInt(); chan++)
        {
            ecg [chan] [m] = (short) scanner.nextInt();     
        }
    }

    for (int chan=0; chan<numChannels; chan++)
        waves[chan].setSignal(ecg[chan]); // sets a signal equal to the ecg array of channels
    return true;

}

}

1 Ответ

4 голосов
/ 18 августа 2011

Я бы проверил случай, когда hasNextInt() возвращает false, и добавил бы следующее:

if (!scanner.hasNextInt())
{
    if (scanner.hasNextLine())
    {
        scanner.nextLine();
    }
}

Это будет занимать оставшуюся часть строки и установить сканер в начале следующеголиния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...