>>890
とりあえず1KBのメモリを確保して、1KB読む。
まだデータが残ってるなら、1KB追加確保して次の1KBを読む。
まだ残ってるなら、2KB追加確保して次の2KBを読む。

何も難しいことはなかろう。