1バイトずつ読んでるならめちゃくちゃ遅くなる可能性あり。
ループの一番内側でオブジェクトガシガシnewしてる場合も同様。
前者だったら一行ずつ読み込むように変更。
後者ならループの外側でオブジェクト生成してループ内ではそれを使いまわすように変更。