I think the `forEach... out.write(data)` is different behavior than `file.pipe(es.through( ).pause( ))`.  I was thinking of ways to detect the `0` length case and have some ideas.  I also ran into some issues where `out.write` not performing the same as `pipe` led to some problems while working on other stuff, maybe we can discuss.