title: Splitting InputStream into multiple parts
body: <p>I have InputStream (does not support marking) pointing to a large file. I want to split this InputStream to multiple input streams and be able to read them parallelly. I don't want to drain the entire stream in order to split in into parts. My idea is  to get something like the following :</p>
  
  <pre><code>    List&lt;ChunkedInputSteam&gt; streams = 
        ???Util???.getChunkedStreams(sourceInputStream, chunkSize)    
  </code></pre>
  
  <p>At one moment the threads will execute the following:</p>
  
  <pre><code>    OutputStream out = new CountingOutputStream(connection.getOutputStream());
      InputStream is = ??streams.get()
      ByteStreams.copy(is, out);
  </code></pre>
  
  <p>Until that moment I don't want to read data into the memory.
  Is this possible to be achieved?</p>