Ну теперь попробуйте убрать split('\r').join('');
Просто обычно в самом текстовом файле есть два спецсимвола - \r и \n - возврат каретки и новая строка. Например, Блокнот понимает и отображает все верно, а флеш при выводе в текстовое поле считает каждый из них за новую строку, поэтому нужно один убирать обычно, через split - join.
Почему у вас сейчас после убирания \r убрались и переводы каретки и символы новой с троки, я не могу сказать. Поэкспериментируйте.
Добавлено через 43 минуты
Погодите-ка, у вас вот тут:

Код:
<b>Привет</b>
<b>Выстникам</b>
по всем законам жанра HTML не должно быть никаких новых строк.
Все правильно, получится одна сплошная строка, ведь нет ни тега <br> - разрыва строки, ни <p> - нового абзаца.
Так что верно. Это ж HTML.