Почему я теряю символ новой строки, когда загружаю текст из сервлета Java в JTextPane?

Я пытаюсь загрузить содержимое текстового файла, содержащего некоторый текст в несколько строк, с помощью сервлета Java.
Когда я тестирую сервлет в браузере, он работает нормально. Текст загружается с новыми строковыми символами.
Но когда я загружаю его в строку в своем приложении Swing, а затем использую textpane.setText(text);, новые строки исчезают. Я пробовал много решений, которые нашел в сети, но все еще не могу понять это правильно.

Код сервлета:
Чтение текста из файла (упрощенное):

File file = new File(path);
StringBuilder data = new StringBuilder();   
BufferedReader in = new BufferedReader(new FileReader(file));
String line;
while ((line = in.readLine()) != null) {
    data.append(line);
    data.append("\n");
}
in.close();

Отправка текста:

PrintWriter out = response.getWriter();
out.write(text));

Это какая-то проблема с платформой? Сервлет был написан и скомпилирован в Linux, но я запускаю его в Windows (на JBoss). Текстовые файлы также хранятся на моей машине.


person hitan    schedule 29.11.2010    source источник
comment
Если в Windows попробуйте data.append(\r\n) вместо \n   -  person saugata    schedule 29.11.2010
comment
Я попробовал это, и это не работает.   -  person hitan    schedule 29.11.2010


Ответы (1)


Вместо data.append("\n") используйте

data.append(System.getProperty("line.separator"));
person Shervin Asgari    schedule 29.11.2010
comment
Может быть, вы можете отладить переменную text перед записью. Как выглядит разделитель строк? - person Shervin Asgari; 29.11.2010
comment
Разделитель '\n', и перед отправкой текста все в порядке. Также, когда я открываю файл, который я сохранил на диске с помощью этого сервлета (он работает в обоих направлениях), в блокноте у меня нет новых строк, но когда я открываю тот же файл в WordPad, все в порядке. Я думаю, что где-то есть простая ошибка, и я действительно не могу ее найти :/ - person hitan; 29.11.2010