read all the bytes in 1 hit.

also, no need to ping-pong through a 1 or 4096 byte buffer, before copying it again.

addresses #190 , following up on #190#issuecomment-14007916