That doesn't seem safe. What happens if the first read returns valid data and the second one raises an error? I don't think it'd be good to throw away the data that it was able to read. `read_to_end` exists if you explicitly want to do that, and another method on `Reader` that repeatedly read to fill the buffer could be added as well.