Stream-style API is easier to use and has better performance with less buffer copying.  For the Reader/Writer API, the caller needs to manage buffers, the read loop, the writing, and the ending condition.