Я использую такой код для обработки файла, состоящего из нескольких строк:
BufferedReader reader = ...
reader.lines().forEach(Same common Action)
Это работает отлично, если каждая строка должна обрабатываться одинаково. Но иногда может быть несколько разных действий.
Например, пусть первая строка - это заголовок, а остальные строки - содержимое. Для первой строки я хочу выполнить Action1, а для остальных - Action2.
В стиле Java 7 я бы сделал что-то вроде этого:
String line;
boolean first = true;
while ( (line = reader.readLine()) != null) {
    if (first) {
        action1(line);
        first = false;
    } else {
        action2(line);
    }
}
Но это сложный и уродливый, и он вообще не использует потоки. Как я могу сделать это с идиоматическим способом с использованием Java 8 потоков?
