Can you add another method that doesn't require the length arg, and passes in -1 for the length?

length argument < 0 means "read the stream to the end".