配列にpushしていって、最後にjoinすれば?
バッファを用意しておくよりは遅いかもしれないけど、計算量的には同等のO(N)になるし、10MBもあるなら文字列の連結を繰り返すO(N**2)よりは断然早くなることは期待できる。
まあバッファを用意できる方法がもしあればそれに越したことはないんだろうけど、もしないなら配列にpushしてjoinも捨てたもんじゃないと思われ。