История изменений
Исправление
Legioner,
(текущая версия)
:
Во-первых, твой код не закрывает файл, если выбрасывается исключение.
Во-вторых он некорректно читает файл. readLine() читает строки с любыми окончаниями: \n, \r, \n\r. Твой код всё это преобразует в \n, т.е. портит исходный текст.
В-третьих он потенциально потребляет больше памяти, когда в файле много длинных строк.
В-четвёртых BufferedReader.readLine использует внутри себя StringBuffer. У этого класса все операции защищены локами, поэтому они могут выполняться дольше аналогичных в StringBuilder-е. В теории JVM может проигнорировать эти локи, но как на практике она себя ведёт, я не знаю.
Исходная версия
Legioner,
:
Во-первых, твой код не закрывает файл, если выбрасывается исключение.
Во-вторых он некорректно читает файл. readLine() читает строки с любыми окончаниями: \n, \r, \n\r. Твой код всё это преобразует в \n, т.е. портит исходный текст.
В-третьих он потенциально потребляет больше памяти, когда в файле много длинных строк.