Запись в текстовые файлы на Java - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть метод, который записывает строку в текстовый файл, используя DataOutputStream и метод .writeBytes(String). Если я пишу строку с символом новой строки, например "I need \n help!", новая строка не отображается в блокноте или других основных текстовых редакторах. Тем не менее, он появляется в WordPad, MS Word и т. Д. Почему это так и я могу это исправить?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

В основном с использованием реальных текстовых редакторов, которых нет в Notepad.

Вам нужно писать системные переводы новой строки, если вы не собираетесь использовать текстовый редактор, который понимает различные варианты, или фильтровать файлчерез что-то, что делает преобразование для вас.

System.getProperty("line.separator");

Это даст вам специфический для ОС разделитель строк.Это менее полезно, чем вы думаете.

System.out.printf("%n");

Это делает то же самое (и доступно также в String.format);также менее полезен, чем вы думаете.Это скорее редактор, поскольку в любой системе может существовать любой файл, отредактированный любым редактором.

1 голос
/ 30 ноября 2011

Вы должны использовать System.getProperty("line.separator"); вместо непосредственного использования \ n.

...