title: Struggling to understand highWaterMark on Readable stream
body: <p>I am seeing some behavior that I don't understand with busboy and node streams highWaterMark property. I would expect that the size of the chunks are at maximum the highWaterMark value, but the chunk size looks unaffected by the highWaterMark setting.</p>
  
  <p>I've set the <code>fileHwm: 5</code> option in busboy, and I have my express route set up like so </p>
  
  <pre><code>app.post('/upload', function(req, res, next) {
    req.pipe(req.busboy); // Pipe it through busboy
    req.busboy.on('file', (fieldname, file, filename) =&gt; {
        console.log(`Upload of '${filename}' started`);
        console.log(file);
        file.on('readable', () =&gt; {
          let chunk;
          while (null !== (chunk = file.read())) {
            console.log(`Received ${chunk.length} bytes of data.`);
          }
        });
  
    });
  });
  </code></pre>
  
  <p>when I log <code>file</code>, it looks ok, and I see the <code>highWaterMark</code> property has been set nicely </p>
  
  <pre><code>FileStream {
    _readableState:
     ReadableState {
       objectMode: false,
       highWaterMark: 5,
  ...
  </code></pre>
  
  <p>but the size of the chunks that I'm getting out are not <code>5</code> like I would expect - instead I'm seeing</p>
  
  <pre><code>Received 65395 bytes of data.
  Received 65536 bytes of data.
  Received 65536 bytes of data.
  Received 65536 bytes of data.
  </code></pre>
  
  <p>So what gives? I would have expected <code>read</code> to only return 5 bytes at a time. Not that 65kb is a bad size, it's fine. I just wish I understood what was happening, and if it was possible to restrict the buffer size.</p>