File IO на несколько порядков медленнее, чем все, что вы делаете с конкатенацией строк в JVM. Диск будет вашим узким местом, несмотря ни на что.
Это предполагает, что мы не говорим о SSD, который, вероятно, все еще медленнее, чем сама JVM.
РЕДАКТИРОВАТЬ: Очевидно, что не очень хорошо общаться на основе комментариев. Попробуй в большем текстовом поле. ОП указал FileWriter. Это означает, что в конечном итоге все данные должны идти на диск. Задержка диска измеряется в миллисекундах, а пропускная способность - в мегабайтах / секунду, обычно 10 с, но не 100 с.
Задержка памяти измеряется в наносекундах, а пропускная способность - в гигабайтах в секунду. Большая часть вашей конкатенации строк происходит там. Это на 3-6 порядков быстрее, чем у диска.
Независимо от того, как вы буферизуете, объединяете и т. Д., В конечном итоге вы столкнетесь с ограничениями пропускной способности диска. Особенно, если вы запустите flush () и подождите, пока он действительно завершит процесс сброса на носитель.
Буферизация не означает приседания, кроме повышения эффективности дискового ввода-вывода. Да, вы должны использовать буфер при записи, что-то порядка 1k-16k достаточно. Однако этот буфер НЕ изменит пропускную способность вашего диска. Это на несколько порядков медленнее, чем проблема конкатенации строк.
Итак. Если вы хотите говорить об эффективности при записи на диск, забудьте о том, как вы объединяете строки. Просто упростите чтение кода.