any advantage of this over a while() or a buffered read? Maybe faster.