でかいファイルだったらFileChannel使ってバイト列からやった方が速かった。
もう昔の話なんで嘘かもシレン。

あと、そのStringBufferと普通にBufferedReaderでいいんじゃない?