Прочитать строку от конкретной строки до конца файла

Я хочу читать из конкретной строки и так далее. Например, я хочу читать из строки 8 и до тех пор, пока не доберется до конца файла. Может ли кто-нибудь научить меня, как правильно его программировать?

Мой текущий код:

import java.util.*;
import java.io.File;
import java.io.FileNotFoundException;

public class Arff {
    public static void main(String[] args) throws FileNotFoundException {

        File TextFile = new File("weather.nominal.arff");
        Scanner reader = new Scanner(TextFile);

        while(reader.hasNextLine()) {
            String text = reader.nextLine();
            String[] SplitData = text.split(" ");

            if (SplitData[0].equals("@relation")) {
                System.out.println(SplitData[1]);
                System.out.println();
            }
            if (SplitData[0].equals("@attribute")) {
                System.out.print(SplitData[1] + " ");
            }
        }
    }
}

weather.nominal.arff

@relation weather.symbolic
@attribute outlook {солнечно, пасмурно, дождливо}
@attribute температура {жарко, мягко, круто}
@attribute влажность {высокая, нормальная}
@attribute windy {TRUE, FALSE}
@attribute play {да, нет}

@данные
солнечный, горячий, высокий, FALSE, нет
солнечный, горячий, высокий, TRUE, то нет
пасмурно, горячий, высокий, ЛОЖЬ, да
дождливый, мягкий, высокий, ЛОЖЬ, да
дождливый, холодный, нормальный, ЛОЖЬ, да
дождливый, холодный, нормальный, TRUE, нет
пасмурный, холодный, нормальный, TRUE, да
солнечный, мягкий, высокий, FALSE, нет
солнечный, холодный, нормальный, ЛОЖЬ, да
дождливый, мягкий, нормальный, ЛОЖЬ, да
солнечный, мягкий, нормальный, TRUE, да
пасмурно, мягкий, высокий, TRUE, да
пасмурно, горячий, нормальный, ЛОЖЬ, да
дождливый, мягкий, высокий, TRUE, нет

Желаемый результат:

weather.symbolic

прогноз температуры влажность ветреная игра

солнечный, горячий, высокий, FALSE, нет
солнечный, горячий, высокий, TRUE, то нет
пасмурно, горячий, высокий, ЛОЖЬ, да
дождливый, мягкий, высокий, ЛОЖЬ, да
дождливый, холодный, нормальный, ЛОЖЬ, да
дождливый, холодный, нормальный, TRUE, нет
пасмурный, холодный, нормальный, TRUE, да
солнечный, мягкий, высокий, FALSE, нет
солнечный, холодный, нормальный, ЛОЖЬ, да
дождливый, мягкий, нормальный, ЛОЖЬ, да
солнечный, мягкий, нормальный, TRUE, да
пасмурно, мягкий, высокий, TRUE, да
пасмурно, горячий, нормальный, ЛОЖЬ, да
дождливый, мягкий, высокий, TRUE, нет

1 ответ

Относительно вашего вопроса: если вы знаете строки, которые хотите пропустить, просто определите переменную counter перед циклом и сосчитайте строки, которые вы прочитали в цикле.

int count = 0;
while {
//....
  if (count >=8){
  //...
  }
  count++;
}

Что касается данных примера, вы можете также использовать булеву переменную вне цикла и хранить ее @data уже прочитано - было бы лучше, если бы индекс строки еще не был известен или мог со временем измениться.

Другие вопросы по тегам