title: Handle one element in a stream without closing it
body: <p>I'm looking for a <strong>clean and efficient</strong> way to apply a consumer to one element of a non parallel stream without closing the stream.</p>
  
  <p>I mean I want to replace </p>
  
  <pre><code>AtomicBoolean firstOneDone = new AtomicBoolean();
  lines.forEach(line -&gt; {
      if (!firstOneDone.get()) {
          // handle first line
          firstOneDone.set(true);
      } else {
          // handle any other line
      }
  })
  </code></pre>
  
  <p>with something alike </p>
  
  <pre><code>lines.forFirst(header -&gt; {
      // handle first line        
  }).forEach(line -&gt; {
      // handle any other line
  })
  </code></pre>
  
  <p>I don't want to do two passes over the whole stream (copy or recreate the stream, <code>peek</code>, etc.), or just move the boolean/test to another location like a function wrapper. </p>
  
  <p>Is that possible or is the fundamental model of streams not compatible with this kind of partial reading ?</p>